/*===- 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 /*203 cases */, 118|128,53/*6902*/, TARGET_VAL(ISD::OR),// ->6907
/*     5*/    OPC_Scope, 101|128,5/*741*/, /*->749*/ // 26 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] } rGPR:{ *:[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] } rGPR:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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] } (ARMvmovImm:{ *:[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*/ 76|128,1/*204*/, /*->5678*/
/*  5474*/      OPC_RecordChild0, // #0 = $Vn
/*  5475*/      OPC_MoveChild1,
/*  5476*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  5479*/      OPC_Scope, 25|128,1/*153*/, /*->5635*/ // 2 children in Scope
/*  5482*/        OPC_RecordChild0, // #1 = $Vm
/*  5483*/        OPC_MoveChild1,
/*  5484*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5487*/        OPC_MoveChild0,
/*  5488*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5491*/        OPC_MoveChild0,
/*  5492*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5495*/        OPC_MoveParent,
/*  5496*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5498*/        OPC_SwitchType /*2 cases */, 23, MVT::v8i8,// ->5524
/*  5501*/          OPC_MoveParent,
/*  5502*/          OPC_MoveParent,
/*  5503*/          OPC_MoveParent,
/*  5504*/          OPC_CheckType, MVT::v2i32,
/*  5506*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5508*/          OPC_EmitInteger, MVT::i32, 14, 
/*  5511*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5514*/          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] } (ARMvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))) - Complexity = 16
                    // Dst: (VORNd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  5524*/        /*SwitchType*/ 108, MVT::v16i8,// ->5634
/*  5526*/          OPC_MoveParent,
/*  5527*/          OPC_MoveParent,
/*  5528*/          OPC_MoveParent,
/*  5529*/          OPC_SwitchType /*3 cases */, 47, MVT::v4i32,// ->5579
/*  5532*/            OPC_Scope, 18, /*->5552*/ // 2 children in Scope
/*  5534*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5536*/              OPC_EmitInteger, MVT::i32, 14, 
/*  5539*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5542*/              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] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))) - Complexity = 16
                        // Dst: (VORNq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  5552*/            /*Scope*/ 25, /*->5578*/
/*  5553*/              OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  5555*/              OPC_EmitInteger, MVT::i32, 0, 
/*  5558*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5561*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  5567*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (or:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, (xor:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qn, (bitconvert:{ *:[v4i32] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))) - Complexity = 16
                        // Dst: (MVE_VORN:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/*  5578*/            0, /*End of Scope*/
/*  5579*/          /*SwitchType*/ 25, MVT::v8i16,// ->5606
/*  5581*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  5583*/            OPC_EmitInteger, MVT::i32, 0, 
/*  5586*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5589*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  5595*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (or:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, (xor:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qn, (bitconvert:{ *:[v8i16] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))) - Complexity = 16
                      // Dst: (MVE_VORN:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/*  5606*/          /*SwitchType*/ 25, MVT::v2i64,// ->5633
/*  5608*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  5610*/            OPC_EmitInteger, MVT::i32, 0, 
/*  5613*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5616*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  5622*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (or:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, (xor:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qn, (bitconvert:{ *:[v2i64] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))) - Complexity = 16
                      // Dst: (MVE_VORN:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
/*  5633*/          0, // EndSwitchType
/*  5634*/        0, // EndSwitchType
/*  5635*/      /*Scope*/ 41, /*->5677*/
/*  5636*/        OPC_MoveChild0,
/*  5637*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5640*/        OPC_MoveChild0,
/*  5641*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5644*/        OPC_MoveChild0,
/*  5645*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5648*/        OPC_MoveParent,
/*  5649*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5651*/        OPC_CheckType, MVT::v8i8,
/*  5653*/        OPC_MoveParent,
/*  5654*/        OPC_MoveParent,
/*  5655*/        OPC_RecordChild1, // #1 = $Vm
/*  5656*/        OPC_MoveParent,
/*  5657*/        OPC_CheckType, MVT::v2i32,
/*  5659*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5661*/        OPC_EmitInteger, MVT::i32, 14, 
/*  5664*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5667*/        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] } (ARMvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vm)) - Complexity = 16
                  // Dst: (VORNd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  5677*/      0, /*End of Scope*/
/*  5678*/    /*Scope*/ 92, /*->5771*/
/*  5679*/      OPC_MoveChild0,
/*  5680*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  5683*/      OPC_Scope, 42, /*->5727*/ // 2 children in Scope
/*  5685*/        OPC_RecordChild0, // #0 = $Vm
/*  5686*/        OPC_MoveChild1,
/*  5687*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5690*/        OPC_MoveChild0,
/*  5691*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5694*/        OPC_MoveChild0,
/*  5695*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5698*/        OPC_MoveParent,
/*  5699*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5701*/        OPC_CheckType, MVT::v8i8,
/*  5703*/        OPC_MoveParent,
/*  5704*/        OPC_MoveParent,
/*  5705*/        OPC_MoveParent,
/*  5706*/        OPC_RecordChild1, // #1 = $Vn
/*  5707*/        OPC_CheckType, MVT::v2i32,
/*  5709*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5711*/        OPC_EmitInteger, MVT::i32, 14, 
/*  5714*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5717*/        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] } (ARMvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), DPR:{ *:[v2i32] }:$Vn) - Complexity = 16
                  // Dst: (VORNd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  5727*/      /*Scope*/ 42, /*->5770*/
/*  5728*/        OPC_MoveChild0,
/*  5729*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5732*/        OPC_MoveChild0,
/*  5733*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5736*/        OPC_MoveChild0,
/*  5737*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5740*/        OPC_MoveParent,
/*  5741*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5743*/        OPC_CheckType, MVT::v8i8,
/*  5745*/        OPC_MoveParent,
/*  5746*/        OPC_MoveParent,
/*  5747*/        OPC_RecordChild1, // #0 = $Vm
/*  5748*/        OPC_MoveParent,
/*  5749*/        OPC_RecordChild1, // #1 = $Vn
/*  5750*/        OPC_CheckType, MVT::v2i32,
/*  5752*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5754*/        OPC_EmitInteger, MVT::i32, 14, 
/*  5757*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5760*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VORNd), 0,
                      MVT::v2i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (or:{ *:[v2i32] } (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (ARMvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$Vn) - Complexity = 16
                  // Dst: (VORNd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*  5770*/      0, /*End of Scope*/
/*  5771*/    /*Scope*/ 46, /*->5818*/
/*  5772*/      OPC_RecordChild0, // #0 = $Vn
/*  5773*/      OPC_MoveChild1,
/*  5774*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  5777*/      OPC_MoveChild0,
/*  5778*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5781*/      OPC_MoveChild0,
/*  5782*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5785*/      OPC_MoveChild0,
/*  5786*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5789*/      OPC_MoveParent,
/*  5790*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5792*/      OPC_CheckType, MVT::v16i8,
/*  5794*/      OPC_MoveParent,
/*  5795*/      OPC_MoveParent,
/*  5796*/      OPC_RecordChild1, // #1 = $Vm
/*  5797*/      OPC_MoveParent,
/*  5798*/      OPC_CheckType, MVT::v4i32,
/*  5800*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5802*/      OPC_EmitInteger, MVT::i32, 14, 
/*  5805*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5808*/      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] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vm)) - Complexity = 16
                // Dst: (VORNq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  5818*/    /*Scope*/ 92, /*->5911*/
/*  5819*/      OPC_MoveChild0,
/*  5820*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  5823*/      OPC_Scope, 42, /*->5867*/ // 2 children in Scope
/*  5825*/        OPC_RecordChild0, // #0 = $Vm
/*  5826*/        OPC_MoveChild1,
/*  5827*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5830*/        OPC_MoveChild0,
/*  5831*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5834*/        OPC_MoveChild0,
/*  5835*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5838*/        OPC_MoveParent,
/*  5839*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5841*/        OPC_CheckType, MVT::v16i8,
/*  5843*/        OPC_MoveParent,
/*  5844*/        OPC_MoveParent,
/*  5845*/        OPC_MoveParent,
/*  5846*/        OPC_RecordChild1, // #1 = $Vn
/*  5847*/        OPC_CheckType, MVT::v4i32,
/*  5849*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5851*/        OPC_EmitInteger, MVT::i32, 14, 
/*  5854*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5857*/        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] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), QPR:{ *:[v4i32] }:$Vn) - Complexity = 16
                  // Dst: (VORNq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  5867*/      /*Scope*/ 42, /*->5910*/
/*  5868*/        OPC_MoveChild0,
/*  5869*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5872*/        OPC_MoveChild0,
/*  5873*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5876*/        OPC_MoveChild0,
/*  5877*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5880*/        OPC_MoveParent,
/*  5881*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5883*/        OPC_CheckType, MVT::v16i8,
/*  5885*/        OPC_MoveParent,
/*  5886*/        OPC_MoveParent,
/*  5887*/        OPC_RecordChild1, // #0 = $Vm
/*  5888*/        OPC_MoveParent,
/*  5889*/        OPC_RecordChild1, // #1 = $Vn
/*  5890*/        OPC_CheckType, MVT::v4i32,
/*  5892*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  5894*/        OPC_EmitInteger, MVT::i32, 14, 
/*  5897*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5900*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VORNq), 0,
                      MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$Vn) - Complexity = 16
                  // Dst: (VORNq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*  5910*/      0, /*End of Scope*/
/*  5911*/    /*Scope*/ 53, /*->5965*/
/*  5912*/      OPC_RecordChild0, // #0 = $Qm
/*  5913*/      OPC_MoveChild1,
/*  5914*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  5917*/      OPC_MoveChild0,
/*  5918*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5921*/      OPC_MoveChild0,
/*  5922*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5925*/      OPC_MoveChild0,
/*  5926*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5929*/      OPC_MoveParent,
/*  5930*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5932*/      OPC_CheckType, MVT::v16i8,
/*  5934*/      OPC_MoveParent,
/*  5935*/      OPC_MoveParent,
/*  5936*/      OPC_RecordChild1, // #1 = $Qn
/*  5937*/      OPC_MoveParent,
/*  5938*/      OPC_CheckType, MVT::v8i16,
/*  5940*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  5942*/      OPC_EmitInteger, MVT::i32, 0, 
/*  5945*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  5948*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  5954*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                    MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (or:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, (xor:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v8i16] }:$Qn)) - Complexity = 16
                // Dst: (MVE_VORN:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/*  5965*/    /*Scope*/ 106, /*->6072*/
/*  5966*/      OPC_MoveChild0,
/*  5967*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  5970*/      OPC_Scope, 49, /*->6021*/ // 2 children in Scope
/*  5972*/        OPC_RecordChild0, // #0 = $Qn
/*  5973*/        OPC_MoveChild1,
/*  5974*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  5977*/        OPC_MoveChild0,
/*  5978*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  5981*/        OPC_MoveChild0,
/*  5982*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  5985*/        OPC_MoveParent,
/*  5986*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  5988*/        OPC_CheckType, MVT::v16i8,
/*  5990*/        OPC_MoveParent,
/*  5991*/        OPC_MoveParent,
/*  5992*/        OPC_MoveParent,
/*  5993*/        OPC_RecordChild1, // #1 = $Qm
/*  5994*/        OPC_CheckType, MVT::v8i16,
/*  5996*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  5998*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6001*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6004*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6010*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                      MVT::v8i16, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (or:{ *:[v8i16] } (xor:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qn, (bitconvert:{ *:[v8i16] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), MQPR:{ *:[v8i16] }:$Qm) - Complexity = 16
                  // Dst: (MVE_VORN:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/*  6021*/      /*Scope*/ 49, /*->6071*/
/*  6022*/        OPC_MoveChild0,
/*  6023*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  6026*/        OPC_MoveChild0,
/*  6027*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  6030*/        OPC_MoveChild0,
/*  6031*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  6034*/        OPC_MoveParent,
/*  6035*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  6037*/        OPC_CheckType, MVT::v16i8,
/*  6039*/        OPC_MoveParent,
/*  6040*/        OPC_MoveParent,
/*  6041*/        OPC_RecordChild1, // #0 = $Qn
/*  6042*/        OPC_MoveParent,
/*  6043*/        OPC_RecordChild1, // #1 = $Qm
/*  6044*/        OPC_CheckType, MVT::v8i16,
/*  6046*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6048*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6051*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6054*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6060*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                      MVT::v8i16, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (or:{ *:[v8i16] } (xor:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v8i16] }:$Qn), MQPR:{ *:[v8i16] }:$Qm) - Complexity = 16
                  // Dst: (MVE_VORN:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/*  6071*/      0, /*End of Scope*/
/*  6072*/    /*Scope*/ 53, /*->6126*/
/*  6073*/      OPC_RecordChild0, // #0 = $Qm
/*  6074*/      OPC_MoveChild1,
/*  6075*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  6078*/      OPC_MoveChild0,
/*  6079*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  6082*/      OPC_MoveChild0,
/*  6083*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  6086*/      OPC_MoveChild0,
/*  6087*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  6090*/      OPC_MoveParent,
/*  6091*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  6093*/      OPC_CheckType, MVT::v16i8,
/*  6095*/      OPC_MoveParent,
/*  6096*/      OPC_MoveParent,
/*  6097*/      OPC_RecordChild1, // #1 = $Qn
/*  6098*/      OPC_MoveParent,
/*  6099*/      OPC_CheckType, MVT::v4i32,
/*  6101*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6103*/      OPC_EmitInteger, MVT::i32, 0, 
/*  6106*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6109*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6115*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                    MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (or:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v4i32] }:$Qn)) - Complexity = 16
                // Dst: (MVE_VORN:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/*  6126*/    /*Scope*/ 106, /*->6233*/
/*  6127*/      OPC_MoveChild0,
/*  6128*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  6131*/      OPC_Scope, 49, /*->6182*/ // 2 children in Scope
/*  6133*/        OPC_RecordChild0, // #0 = $Qn
/*  6134*/        OPC_MoveChild1,
/*  6135*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  6138*/        OPC_MoveChild0,
/*  6139*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  6142*/        OPC_MoveChild0,
/*  6143*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  6146*/        OPC_MoveParent,
/*  6147*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  6149*/        OPC_CheckType, MVT::v16i8,
/*  6151*/        OPC_MoveParent,
/*  6152*/        OPC_MoveParent,
/*  6153*/        OPC_MoveParent,
/*  6154*/        OPC_RecordChild1, // #1 = $Qm
/*  6155*/        OPC_CheckType, MVT::v4i32,
/*  6157*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6159*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6162*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6165*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6171*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                      MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qn, (bitconvert:{ *:[v4i32] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), MQPR:{ *:[v4i32] }:$Qm) - Complexity = 16
                  // Dst: (MVE_VORN:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/*  6182*/      /*Scope*/ 49, /*->6232*/
/*  6183*/        OPC_MoveChild0,
/*  6184*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  6187*/        OPC_MoveChild0,
/*  6188*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  6191*/        OPC_MoveChild0,
/*  6192*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  6195*/        OPC_MoveParent,
/*  6196*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  6198*/        OPC_CheckType, MVT::v16i8,
/*  6200*/        OPC_MoveParent,
/*  6201*/        OPC_MoveParent,
/*  6202*/        OPC_RecordChild1, // #0 = $Qn
/*  6203*/        OPC_MoveParent,
/*  6204*/        OPC_RecordChild1, // #1 = $Qm
/*  6205*/        OPC_CheckType, MVT::v4i32,
/*  6207*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6209*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6212*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6215*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6221*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                      MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (or:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v4i32] }:$Qn), MQPR:{ *:[v4i32] }:$Qm) - Complexity = 16
                  // Dst: (MVE_VORN:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/*  6232*/      0, /*End of Scope*/
/*  6233*/    /*Scope*/ 53, /*->6287*/
/*  6234*/      OPC_RecordChild0, // #0 = $Qm
/*  6235*/      OPC_MoveChild1,
/*  6236*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  6239*/      OPC_MoveChild0,
/*  6240*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  6243*/      OPC_MoveChild0,
/*  6244*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  6247*/      OPC_MoveChild0,
/*  6248*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  6251*/      OPC_MoveParent,
/*  6252*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  6254*/      OPC_CheckType, MVT::v16i8,
/*  6256*/      OPC_MoveParent,
/*  6257*/      OPC_MoveParent,
/*  6258*/      OPC_RecordChild1, // #1 = $Qn
/*  6259*/      OPC_MoveParent,
/*  6260*/      OPC_CheckType, MVT::v2i64,
/*  6262*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6264*/      OPC_EmitInteger, MVT::i32, 0, 
/*  6267*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6270*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6276*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                    MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (or:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v2i64] }:$Qn)) - Complexity = 16
                // Dst: (MVE_VORN:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
/*  6287*/    /*Scope*/ 106, /*->6394*/
/*  6288*/      OPC_MoveChild0,
/*  6289*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  6292*/      OPC_Scope, 49, /*->6343*/ // 2 children in Scope
/*  6294*/        OPC_RecordChild0, // #0 = $Qn
/*  6295*/        OPC_MoveChild1,
/*  6296*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  6299*/        OPC_MoveChild0,
/*  6300*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  6303*/        OPC_MoveChild0,
/*  6304*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  6307*/        OPC_MoveParent,
/*  6308*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  6310*/        OPC_CheckType, MVT::v16i8,
/*  6312*/        OPC_MoveParent,
/*  6313*/        OPC_MoveParent,
/*  6314*/        OPC_MoveParent,
/*  6315*/        OPC_RecordChild1, // #1 = $Qm
/*  6316*/        OPC_CheckType, MVT::v2i64,
/*  6318*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6320*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6323*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6326*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6332*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                      MVT::v2i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (or:{ *:[v2i64] } (xor:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qn, (bitconvert:{ *:[v2i64] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), MQPR:{ *:[v2i64] }:$Qm) - Complexity = 16
                  // Dst: (MVE_VORN:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
/*  6343*/      /*Scope*/ 49, /*->6393*/
/*  6344*/        OPC_MoveChild0,
/*  6345*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*  6348*/        OPC_MoveChild0,
/*  6349*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  6352*/        OPC_MoveChild0,
/*  6353*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  6356*/        OPC_MoveParent,
/*  6357*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  6359*/        OPC_CheckType, MVT::v16i8,
/*  6361*/        OPC_MoveParent,
/*  6362*/        OPC_MoveParent,
/*  6363*/        OPC_RecordChild1, // #0 = $Qn
/*  6364*/        OPC_MoveParent,
/*  6365*/        OPC_RecordChild1, // #1 = $Qm
/*  6366*/        OPC_CheckType, MVT::v2i64,
/*  6368*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6370*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6373*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6376*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6382*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                      MVT::v2i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (or:{ *:[v2i64] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v2i64] }:$Qn), MQPR:{ *:[v2i64] }:$Qm) - Complexity = 16
                  // Dst: (MVE_VORN:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
/*  6393*/      0, /*End of Scope*/
/*  6394*/    /*Scope*/ 91, /*->6486*/
/*  6395*/      OPC_RecordChild0, // #0 = $Qm
/*  6396*/      OPC_MoveChild1,
/*  6397*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  6400*/      OPC_Scope, 41, /*->6443*/ // 2 children in Scope
/*  6402*/        OPC_RecordChild0, // #1 = $Qn
/*  6403*/        OPC_MoveChild1,
/*  6404*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  6407*/        OPC_MoveChild0,
/*  6408*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  6411*/        OPC_MoveParent,
/*  6412*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  6414*/        OPC_MoveParent,
/*  6415*/        OPC_MoveParent,
/*  6416*/        OPC_CheckType, MVT::v16i8,
/*  6418*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6420*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6423*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6426*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6432*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (or:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, (xor:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qn, (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)) - Complexity = 13
                  // Dst: (MVE_VORN:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/*  6443*/      /*Scope*/ 41, /*->6485*/
/*  6444*/        OPC_MoveChild0,
/*  6445*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  6448*/        OPC_MoveChild0,
/*  6449*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  6452*/        OPC_MoveParent,
/*  6453*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  6455*/        OPC_MoveParent,
/*  6456*/        OPC_RecordChild1, // #1 = $Qn
/*  6457*/        OPC_MoveParent,
/*  6458*/        OPC_CheckType, MVT::v16i8,
/*  6460*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6462*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6465*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6468*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6474*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (or:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, (xor:{ *:[v16i8] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>, MQPR:{ *:[v16i8] }:$Qn)) - Complexity = 13
                  // Dst: (MVE_VORN:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/*  6485*/      0, /*End of Scope*/
/*  6486*/    /*Scope*/ 92, /*->6579*/
/*  6487*/      OPC_MoveChild0,
/*  6488*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*  6491*/      OPC_Scope, 42, /*->6535*/ // 2 children in Scope
/*  6493*/        OPC_RecordChild0, // #0 = $Qn
/*  6494*/        OPC_MoveChild1,
/*  6495*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  6498*/        OPC_MoveChild0,
/*  6499*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  6502*/        OPC_MoveParent,
/*  6503*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  6505*/        OPC_MoveParent,
/*  6506*/        OPC_MoveParent,
/*  6507*/        OPC_RecordChild1, // #1 = $Qm
/*  6508*/        OPC_CheckType, MVT::v16i8,
/*  6510*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6512*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6515*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6518*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6524*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                      MVT::v16i8, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (or:{ *:[v16i8] } (xor:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qn, (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v16i8] }:$Qm) - Complexity = 13
                  // Dst: (MVE_VORN:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/*  6535*/      /*Scope*/ 42, /*->6578*/
/*  6536*/        OPC_MoveChild0,
/*  6537*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*  6540*/        OPC_MoveChild0,
/*  6541*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*  6544*/        OPC_MoveParent,
/*  6545*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/*  6547*/        OPC_MoveParent,
/*  6548*/        OPC_RecordChild1, // #0 = $Qn
/*  6549*/        OPC_MoveParent,
/*  6550*/        OPC_RecordChild1, // #1 = $Qm
/*  6551*/        OPC_CheckType, MVT::v16i8,
/*  6553*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6555*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6558*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6561*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6567*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                      MVT::v16i8, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (or:{ *:[v16i8] } (xor:{ *:[v16i8] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>, MQPR:{ *:[v16i8] }:$Qn), MQPR:{ *:[v16i8] }:$Qm) - Complexity = 13
                  // Dst: (MVE_VORN:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/*  6578*/      0, /*End of Scope*/
/*  6579*/    /*Scope*/ 69|128,2/*325*/, /*->6906*/
/*  6581*/      OPC_RecordChild0, // #0 = $Vn
/*  6582*/      OPC_RecordChild1, // #1 = $Vm
/*  6583*/      OPC_SwitchType /*8 cases */, 18, MVT::v2i32,// ->6604
/*  6586*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  6588*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6591*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6594*/        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)
/*  6604*/      /*SwitchType*/ 47, MVT::v4i32,// ->6653
/*  6606*/        OPC_Scope, 18, /*->6626*/ // 2 children in Scope
/*  6608*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*  6610*/          OPC_EmitInteger, MVT::i32, 14, 
/*  6613*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6616*/          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)
/*  6626*/        /*Scope*/ 25, /*->6652*/
/*  6627*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6629*/          OPC_EmitInteger, MVT::i32, 0, 
/*  6632*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6635*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6641*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORR), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (or:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VORR:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/*  6652*/        0, /*End of Scope*/
/*  6653*/      /*SwitchType*/ 25, MVT::v16i8,// ->6680
/*  6655*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6657*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6660*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6663*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6669*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORR), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (or:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VORR:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/*  6680*/      /*SwitchType*/ 25, MVT::v8i16,// ->6707
/*  6682*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6684*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6687*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6690*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6696*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORR), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (or:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VORR:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/*  6707*/      /*SwitchType*/ 25, MVT::v2i64,// ->6734
/*  6709*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6711*/        OPC_EmitInteger, MVT::i32, 0, 
/*  6714*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6717*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*  6723*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORR), 0,
                      MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (or:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VORR:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
/*  6734*/      /*SwitchType*/ 55, MVT::v16i1,// ->6791
/*  6736*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6738*/        OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*  6741*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  6749*/        OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*  6752*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/*  6760*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6763*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6766*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6769*/        OPC_EmitNode1, TARGET_VAL(ARM::t2ORRrr), 0,
                      MVT::i32, 5/*#Ops*/, 3, 5, 6, 7, 8,  // Results = #9
/*  6780*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*  6783*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 9, 10, 
                  // Src: (or:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, VCCR:{ *:[v16i1] }:$p2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (t2ORRrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
/*  6791*/      /*SwitchType*/ 55, MVT::v8i1,// ->6848
/*  6793*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6795*/        OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*  6798*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  6806*/        OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*  6809*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/*  6817*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6820*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6823*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6826*/        OPC_EmitNode1, TARGET_VAL(ARM::t2ORRrr), 0,
                      MVT::i32, 5/*#Ops*/, 3, 5, 6, 7, 8,  // Results = #9
/*  6837*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*  6840*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 9, 10, 
                  // Src: (or:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, VCCR:{ *:[v8i1] }:$p2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (t2ORRrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
/*  6848*/      /*SwitchType*/ 55, MVT::v4i1,// ->6905
/*  6850*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*  6852*/        OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*  6855*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*  6863*/        OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*  6866*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/*  6874*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6877*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6880*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6883*/        OPC_EmitNode1, TARGET_VAL(ARM::t2ORRrr), 0,
                      MVT::i32, 5/*#Ops*/, 3, 5, 6, 7, 8,  // Results = #9
/*  6894*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*  6897*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 9, 10, 
                  // Src: (or:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, VCCR:{ *:[v4i1] }:$p2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (t2ORRrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
/*  6905*/      0, // EndSwitchType
/*  6906*/    0, /*End of Scope*/
/*  6907*/  /*SwitchOpcode*/ 21|128,88/*11285*/, TARGET_VAL(ISD::ADD),// ->18196
/*  6911*/    OPC_Scope, 0|128,3/*384*/, /*->7298*/ // 63 children in Scope
/*  6914*/      OPC_RecordChild0, // #0 = $Rn
/*  6915*/      OPC_MoveChild1,
/*  6916*/      OPC_Scope, 46, /*->6964*/ // 8 children in Scope
/*  6918*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  6921*/        OPC_MoveChild0,
/*  6922*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  6925*/        OPC_RecordChild0, // #1 = $Rm
/*  6926*/        OPC_RecordChild1, // #2 = $rot
/*  6927*/        OPC_MoveChild1,
/*  6928*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6931*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  6933*/        OPC_CheckType, MVT::i32,
/*  6935*/        OPC_MoveParent,
/*  6936*/        OPC_MoveParent,
/*  6937*/        OPC_MoveParent,
/*  6938*/        OPC_CheckType, MVT::i32,
/*  6940*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  6942*/        OPC_EmitConvertToTarget, 2,
/*  6944*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6947*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6950*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  6953*/        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))
/*  6964*/      /*Scope*/ 47, /*->7012*/
/*  6965*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  6969*/        OPC_MoveChild0,
/*  6970*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  6973*/        OPC_RecordChild0, // #1 = $Rm
/*  6974*/        OPC_RecordChild1, // #2 = $rot
/*  6975*/        OPC_MoveChild1,
/*  6976*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6979*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  6981*/        OPC_CheckType, MVT::i32,
/*  6983*/        OPC_MoveParent,
/*  6984*/        OPC_MoveParent,
/*  6985*/        OPC_MoveParent,
/*  6986*/        OPC_CheckType, MVT::i32,
/*  6988*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  6990*/        OPC_EmitConvertToTarget, 2,
/*  6992*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  6995*/        OPC_EmitInteger, MVT::i32, 14, 
/*  6998*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7001*/        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))
/*  7012*/      /*Scope*/ 46, /*->7059*/
/*  7013*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  7016*/        OPC_MoveChild0,
/*  7017*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  7020*/        OPC_RecordChild0, // #1 = $Rm
/*  7021*/        OPC_RecordChild1, // #2 = $rot
/*  7022*/        OPC_MoveChild1,
/*  7023*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7026*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  7028*/        OPC_CheckType, MVT::i32,
/*  7030*/        OPC_MoveParent,
/*  7031*/        OPC_MoveParent,
/*  7032*/        OPC_MoveParent,
/*  7033*/        OPC_CheckType, MVT::i32,
/*  7035*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  7037*/        OPC_EmitConvertToTarget, 2,
/*  7039*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  7042*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7045*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7048*/        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))
/*  7059*/      /*Scope*/ 47, /*->7107*/
/*  7060*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  7064*/        OPC_MoveChild0,
/*  7065*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  7068*/        OPC_RecordChild0, // #1 = $Rm
/*  7069*/        OPC_RecordChild1, // #2 = $rot
/*  7070*/        OPC_MoveChild1,
/*  7071*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7074*/        OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  7076*/        OPC_CheckType, MVT::i32,
/*  7078*/        OPC_MoveParent,
/*  7079*/        OPC_MoveParent,
/*  7080*/        OPC_MoveParent,
/*  7081*/        OPC_CheckType, MVT::i32,
/*  7083*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  7085*/        OPC_EmitConvertToTarget, 2,
/*  7087*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  7090*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7093*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7096*/        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))
/*  7107*/      /*Scope*/ 46, /*->7154*/
/*  7108*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  7111*/        OPC_MoveChild0,
/*  7112*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  7115*/        OPC_RecordChild0, // #1 = $Rm
/*  7116*/        OPC_RecordChild1, // #2 = $rot
/*  7117*/        OPC_MoveChild1,
/*  7118*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7121*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  7123*/        OPC_CheckType, MVT::i32,
/*  7125*/        OPC_MoveParent,
/*  7126*/        OPC_MoveParent,
/*  7127*/        OPC_MoveParent,
/*  7128*/        OPC_CheckType, MVT::i32,
/*  7130*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7132*/        OPC_EmitConvertToTarget, 2,
/*  7134*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  7137*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7140*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7143*/        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))
/*  7154*/      /*Scope*/ 47, /*->7202*/
/*  7155*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  7159*/        OPC_MoveChild0,
/*  7160*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  7163*/        OPC_RecordChild0, // #1 = $Rm
/*  7164*/        OPC_RecordChild1, // #2 = $rot
/*  7165*/        OPC_MoveChild1,
/*  7166*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7169*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  7171*/        OPC_CheckType, MVT::i32,
/*  7173*/        OPC_MoveParent,
/*  7174*/        OPC_MoveParent,
/*  7175*/        OPC_MoveParent,
/*  7176*/        OPC_CheckType, MVT::i32,
/*  7178*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7180*/        OPC_EmitConvertToTarget, 2,
/*  7182*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  7185*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7188*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7191*/        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))
/*  7202*/      /*Scope*/ 46, /*->7249*/
/*  7203*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  7206*/        OPC_MoveChild0,
/*  7207*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  7210*/        OPC_RecordChild0, // #1 = $Rm
/*  7211*/        OPC_RecordChild1, // #2 = $rot
/*  7212*/        OPC_MoveChild1,
/*  7213*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7216*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  7218*/        OPC_CheckType, MVT::i32,
/*  7220*/        OPC_MoveParent,
/*  7221*/        OPC_MoveParent,
/*  7222*/        OPC_MoveParent,
/*  7223*/        OPC_CheckType, MVT::i32,
/*  7225*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7227*/        OPC_EmitConvertToTarget, 2,
/*  7229*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  7232*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7235*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7238*/        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))
/*  7249*/      /*Scope*/ 47, /*->7297*/
/*  7250*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  7254*/        OPC_MoveChild0,
/*  7255*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  7258*/        OPC_RecordChild0, // #1 = $Rm
/*  7259*/        OPC_RecordChild1, // #2 = $rot
/*  7260*/        OPC_MoveChild1,
/*  7261*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7264*/        OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  7266*/        OPC_CheckType, MVT::i32,
/*  7268*/        OPC_MoveParent,
/*  7269*/        OPC_MoveParent,
/*  7270*/        OPC_MoveParent,
/*  7271*/        OPC_CheckType, MVT::i32,
/*  7273*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7275*/        OPC_EmitConvertToTarget, 2,
/*  7277*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  7280*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7283*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7286*/        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))
/*  7297*/      0, /*End of Scope*/
/*  7298*/    /*Scope*/ 7|128,3/*391*/, /*->7691*/
/*  7300*/      OPC_MoveChild0,
/*  7301*/      OPC_Scope, 47, /*->7350*/ // 8 children in Scope
/*  7303*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  7306*/        OPC_MoveChild0,
/*  7307*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  7310*/        OPC_RecordChild0, // #0 = $Rm
/*  7311*/        OPC_RecordChild1, // #1 = $rot
/*  7312*/        OPC_MoveChild1,
/*  7313*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7316*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  7318*/        OPC_CheckType, MVT::i32,
/*  7320*/        OPC_MoveParent,
/*  7321*/        OPC_MoveParent,
/*  7322*/        OPC_MoveParent,
/*  7323*/        OPC_RecordChild1, // #2 = $Rn
/*  7324*/        OPC_CheckType, MVT::i32,
/*  7326*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  7328*/        OPC_EmitConvertToTarget, 1,
/*  7330*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  7333*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7336*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7339*/        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))
/*  7350*/      /*Scope*/ 48, /*->7399*/
/*  7351*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  7355*/        OPC_MoveChild0,
/*  7356*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  7359*/        OPC_RecordChild0, // #0 = $Rm
/*  7360*/        OPC_RecordChild1, // #1 = $rot
/*  7361*/        OPC_MoveChild1,
/*  7362*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7365*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  7367*/        OPC_CheckType, MVT::i32,
/*  7369*/        OPC_MoveParent,
/*  7370*/        OPC_MoveParent,
/*  7371*/        OPC_MoveParent,
/*  7372*/        OPC_RecordChild1, // #2 = $Rn
/*  7373*/        OPC_CheckType, MVT::i32,
/*  7375*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  7377*/        OPC_EmitConvertToTarget, 1,
/*  7379*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  7382*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7385*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7388*/        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))
/*  7399*/      /*Scope*/ 47, /*->7447*/
/*  7400*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  7403*/        OPC_MoveChild0,
/*  7404*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  7407*/        OPC_RecordChild0, // #0 = $Rm
/*  7408*/        OPC_RecordChild1, // #1 = $rot
/*  7409*/        OPC_MoveChild1,
/*  7410*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7413*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  7415*/        OPC_CheckType, MVT::i32,
/*  7417*/        OPC_MoveParent,
/*  7418*/        OPC_MoveParent,
/*  7419*/        OPC_MoveParent,
/*  7420*/        OPC_RecordChild1, // #2 = $Rn
/*  7421*/        OPC_CheckType, MVT::i32,
/*  7423*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  7425*/        OPC_EmitConvertToTarget, 1,
/*  7427*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  7430*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7433*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7436*/        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))
/*  7447*/      /*Scope*/ 48, /*->7496*/
/*  7448*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  7452*/        OPC_MoveChild0,
/*  7453*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  7456*/        OPC_RecordChild0, // #0 = $Rm
/*  7457*/        OPC_RecordChild1, // #1 = $rot
/*  7458*/        OPC_MoveChild1,
/*  7459*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7462*/        OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  7464*/        OPC_CheckType, MVT::i32,
/*  7466*/        OPC_MoveParent,
/*  7467*/        OPC_MoveParent,
/*  7468*/        OPC_MoveParent,
/*  7469*/        OPC_RecordChild1, // #2 = $Rn
/*  7470*/        OPC_CheckType, MVT::i32,
/*  7472*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  7474*/        OPC_EmitConvertToTarget, 1,
/*  7476*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  7479*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7482*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7485*/        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))
/*  7496*/      /*Scope*/ 47, /*->7544*/
/*  7497*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  7500*/        OPC_MoveChild0,
/*  7501*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  7504*/        OPC_RecordChild0, // #0 = $Rm
/*  7505*/        OPC_RecordChild1, // #1 = $rot
/*  7506*/        OPC_MoveChild1,
/*  7507*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7510*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  7512*/        OPC_CheckType, MVT::i32,
/*  7514*/        OPC_MoveParent,
/*  7515*/        OPC_MoveParent,
/*  7516*/        OPC_MoveParent,
/*  7517*/        OPC_RecordChild1, // #2 = $Rn
/*  7518*/        OPC_CheckType, MVT::i32,
/*  7520*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7522*/        OPC_EmitConvertToTarget, 1,
/*  7524*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  7527*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7530*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7533*/        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))
/*  7544*/      /*Scope*/ 48, /*->7593*/
/*  7545*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  7549*/        OPC_MoveChild0,
/*  7550*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  7553*/        OPC_RecordChild0, // #0 = $Rm
/*  7554*/        OPC_RecordChild1, // #1 = $rot
/*  7555*/        OPC_MoveChild1,
/*  7556*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7559*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  7561*/        OPC_CheckType, MVT::i32,
/*  7563*/        OPC_MoveParent,
/*  7564*/        OPC_MoveParent,
/*  7565*/        OPC_MoveParent,
/*  7566*/        OPC_RecordChild1, // #2 = $Rn
/*  7567*/        OPC_CheckType, MVT::i32,
/*  7569*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7571*/        OPC_EmitConvertToTarget, 1,
/*  7573*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  7576*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7579*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7582*/        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))
/*  7593*/      /*Scope*/ 47, /*->7641*/
/*  7594*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  7597*/        OPC_MoveChild0,
/*  7598*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  7601*/        OPC_RecordChild0, // #0 = $Rm
/*  7602*/        OPC_RecordChild1, // #1 = $rot
/*  7603*/        OPC_MoveChild1,
/*  7604*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7607*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  7609*/        OPC_CheckType, MVT::i32,
/*  7611*/        OPC_MoveParent,
/*  7612*/        OPC_MoveParent,
/*  7613*/        OPC_MoveParent,
/*  7614*/        OPC_RecordChild1, // #2 = $Rn
/*  7615*/        OPC_CheckType, MVT::i32,
/*  7617*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7619*/        OPC_EmitConvertToTarget, 1,
/*  7621*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  7624*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7627*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7630*/        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))
/*  7641*/      /*Scope*/ 48, /*->7690*/
/*  7642*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  7646*/        OPC_MoveChild0,
/*  7647*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  7650*/        OPC_RecordChild0, // #0 = $Rm
/*  7651*/        OPC_RecordChild1, // #1 = $rot
/*  7652*/        OPC_MoveChild1,
/*  7653*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7656*/        OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  7658*/        OPC_CheckType, MVT::i32,
/*  7660*/        OPC_MoveParent,
/*  7661*/        OPC_MoveParent,
/*  7662*/        OPC_MoveParent,
/*  7663*/        OPC_RecordChild1, // #2 = $Rn
/*  7664*/        OPC_CheckType, MVT::i32,
/*  7666*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7668*/        OPC_EmitConvertToTarget, 1,
/*  7670*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  7673*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7676*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7679*/        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))
/*  7690*/      0, /*End of Scope*/
/*  7691*/    /*Scope*/ 126, /*->7818*/
/*  7692*/      OPC_RecordChild0, // #0 = $Rn
/*  7693*/      OPC_MoveChild1,
/*  7694*/      OPC_Scope, 29, /*->7725*/ // 4 children in Scope
/*  7696*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  7699*/        OPC_RecordChild0, // #1 = $Rm
/*  7700*/        OPC_MoveParent,
/*  7701*/        OPC_CheckType, MVT::i32,
/*  7703*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  7705*/        OPC_EmitInteger, MVT::i32, 0, 
/*  7708*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7711*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7714*/        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] })
/*  7725*/      /*Scope*/ 30, /*->7756*/
/*  7726*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  7730*/        OPC_RecordChild0, // #1 = $Rm
/*  7731*/        OPC_MoveParent,
/*  7732*/        OPC_CheckType, MVT::i32,
/*  7734*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  7736*/        OPC_EmitInteger, MVT::i32, 0, 
/*  7739*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7742*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7745*/        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] })
/*  7756*/      /*Scope*/ 29, /*->7786*/
/*  7757*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  7760*/        OPC_RecordChild0, // #1 = $Rm
/*  7761*/        OPC_MoveParent,
/*  7762*/        OPC_CheckType, MVT::i32,
/*  7764*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7766*/        OPC_EmitInteger, MVT::i32, 0, 
/*  7769*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7772*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7775*/        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] })
/*  7786*/      /*Scope*/ 30, /*->7817*/
/*  7787*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  7791*/        OPC_RecordChild0, // #1 = $Rm
/*  7792*/        OPC_MoveParent,
/*  7793*/        OPC_CheckType, MVT::i32,
/*  7795*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7797*/        OPC_EmitInteger, MVT::i32, 0, 
/*  7800*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7803*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7806*/        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] })
/*  7817*/      0, /*End of Scope*/
/*  7818*/    /*Scope*/ 1|128,1/*129*/, /*->7949*/
/*  7820*/      OPC_MoveChild0,
/*  7821*/      OPC_Scope, 30, /*->7853*/ // 4 children in Scope
/*  7823*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  7826*/        OPC_RecordChild0, // #0 = $Rm
/*  7827*/        OPC_MoveParent,
/*  7828*/        OPC_RecordChild1, // #1 = $Rn
/*  7829*/        OPC_CheckType, MVT::i32,
/*  7831*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  7833*/        OPC_EmitInteger, MVT::i32, 0, 
/*  7836*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7839*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7842*/        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] })
/*  7853*/      /*Scope*/ 31, /*->7885*/
/*  7854*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  7858*/        OPC_RecordChild0, // #0 = $Rm
/*  7859*/        OPC_MoveParent,
/*  7860*/        OPC_RecordChild1, // #1 = $Rn
/*  7861*/        OPC_CheckType, MVT::i32,
/*  7863*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  7865*/        OPC_EmitInteger, MVT::i32, 0, 
/*  7868*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7871*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7874*/        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] })
/*  7885*/      /*Scope*/ 30, /*->7916*/
/*  7886*/        OPC_CheckAndImm, 127|128,1/*255*/, 
/*  7889*/        OPC_RecordChild0, // #0 = $Rm
/*  7890*/        OPC_MoveParent,
/*  7891*/        OPC_RecordChild1, // #1 = $Rn
/*  7892*/        OPC_CheckType, MVT::i32,
/*  7894*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7896*/        OPC_EmitInteger, MVT::i32, 0, 
/*  7899*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7902*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7905*/        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] })
/*  7916*/      /*Scope*/ 31, /*->7948*/
/*  7917*/        OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/*  7921*/        OPC_RecordChild0, // #0 = $Rm
/*  7922*/        OPC_MoveParent,
/*  7923*/        OPC_RecordChild1, // #1 = $Rn
/*  7924*/        OPC_CheckType, MVT::i32,
/*  7926*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7928*/        OPC_EmitInteger, MVT::i32, 0, 
/*  7931*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7934*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7937*/        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] })
/*  7948*/      0, /*End of Scope*/
/*  7949*/    /*Scope*/ 108, /*->8058*/
/*  7950*/      OPC_RecordChild0, // #0 = $Rn
/*  7951*/      OPC_MoveChild1,
/*  7952*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  7955*/      OPC_MoveChild0,
/*  7956*/      OPC_CheckOpcode, TARGET_VAL(ISD::OR),
/*  7959*/      OPC_MoveChild0,
/*  7960*/      OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::SRL),// ->8009
/*  7964*/        OPC_RecordChild0, // #1 = $Rm
/*  7965*/        OPC_CheckChild1Integer, 24, 
/*  7967*/        OPC_CheckChild1Type, MVT::i32,
/*  7969*/        OPC_MoveParent,
/*  7970*/        OPC_MoveChild1,
/*  7971*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  7974*/        OPC_CheckChild0Same, 1,
/*  7976*/        OPC_CheckChild1Integer, 8, 
/*  7978*/        OPC_CheckChild1Type, MVT::i32,
/*  7980*/        OPC_MoveParent,
/*  7981*/        OPC_MoveParent,
/*  7982*/        OPC_MoveChild1,
/*  7983*/        OPC_CheckValueType, MVT::i16,
/*  7985*/        OPC_MoveParent,
/*  7986*/        OPC_MoveParent,
/*  7987*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  7989*/        OPC_EmitInteger, MVT::i32, 3, 
/*  7992*/        OPC_EmitInteger, MVT::i32, 14, 
/*  7995*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  7998*/        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] })
/*  8009*/      /*SwitchOpcode*/ 45, TARGET_VAL(ISD::SHL),// ->8057
/*  8012*/        OPC_RecordChild0, // #1 = $Rm
/*  8013*/        OPC_CheckChild1Integer, 8, 
/*  8015*/        OPC_CheckChild1Type, MVT::i32,
/*  8017*/        OPC_MoveParent,
/*  8018*/        OPC_MoveChild1,
/*  8019*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  8022*/        OPC_CheckChild0Same, 1,
/*  8024*/        OPC_CheckChild1Integer, 24, 
/*  8026*/        OPC_CheckChild1Type, MVT::i32,
/*  8028*/        OPC_MoveParent,
/*  8029*/        OPC_MoveParent,
/*  8030*/        OPC_MoveChild1,
/*  8031*/        OPC_CheckValueType, MVT::i16,
/*  8033*/        OPC_MoveParent,
/*  8034*/        OPC_MoveParent,
/*  8035*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  8037*/        OPC_EmitInteger, MVT::i32, 3, 
/*  8040*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8043*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8046*/        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] })
/*  8057*/      0, // EndSwitchOpcode
/*  8058*/    /*Scope*/ 109, /*->8168*/
/*  8059*/      OPC_MoveChild0,
/*  8060*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  8063*/      OPC_MoveChild0,
/*  8064*/      OPC_CheckOpcode, TARGET_VAL(ISD::OR),
/*  8067*/      OPC_MoveChild0,
/*  8068*/      OPC_SwitchOpcode /*2 cases */, 46, TARGET_VAL(ISD::SRL),// ->8118
/*  8072*/        OPC_RecordChild0, // #0 = $Rm
/*  8073*/        OPC_CheckChild1Integer, 24, 
/*  8075*/        OPC_CheckChild1Type, MVT::i32,
/*  8077*/        OPC_MoveParent,
/*  8078*/        OPC_MoveChild1,
/*  8079*/        OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*  8082*/        OPC_CheckChild0Same, 0,
/*  8084*/        OPC_CheckChild1Integer, 8, 
/*  8086*/        OPC_CheckChild1Type, MVT::i32,
/*  8088*/        OPC_MoveParent,
/*  8089*/        OPC_MoveParent,
/*  8090*/        OPC_MoveChild1,
/*  8091*/        OPC_CheckValueType, MVT::i16,
/*  8093*/        OPC_MoveParent,
/*  8094*/        OPC_MoveParent,
/*  8095*/        OPC_RecordChild1, // #1 = $Rn
/*  8096*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  8098*/        OPC_EmitInteger, MVT::i32, 3, 
/*  8101*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8104*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8107*/        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] })
/*  8118*/      /*SwitchOpcode*/ 46, TARGET_VAL(ISD::SHL),// ->8167
/*  8121*/        OPC_RecordChild0, // #0 = $Rm
/*  8122*/        OPC_CheckChild1Integer, 8, 
/*  8124*/        OPC_CheckChild1Type, MVT::i32,
/*  8126*/        OPC_MoveParent,
/*  8127*/        OPC_MoveChild1,
/*  8128*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/*  8131*/        OPC_CheckChild0Same, 0,
/*  8133*/        OPC_CheckChild1Integer, 24, 
/*  8135*/        OPC_CheckChild1Type, MVT::i32,
/*  8137*/        OPC_MoveParent,
/*  8138*/        OPC_MoveParent,
/*  8139*/        OPC_MoveChild1,
/*  8140*/        OPC_CheckValueType, MVT::i16,
/*  8142*/        OPC_MoveParent,
/*  8143*/        OPC_MoveParent,
/*  8144*/        OPC_RecordChild1, // #1 = $Rn
/*  8145*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  8147*/        OPC_EmitInteger, MVT::i32, 3, 
/*  8150*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8153*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8156*/        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] })
/*  8167*/      0, // EndSwitchOpcode
/*  8168*/    /*Scope*/ 70, /*->8239*/
/*  8169*/      OPC_RecordChild0, // #0 = $Ra
/*  8170*/      OPC_MoveChild1,
/*  8171*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  8174*/      OPC_MoveChild0,
/*  8175*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  8178*/      OPC_RecordChild0, // #1 = $Rn
/*  8179*/      OPC_CheckChild1Integer, 16, 
/*  8181*/      OPC_CheckChild1Type, MVT::i32,
/*  8183*/      OPC_MoveParent,
/*  8184*/      OPC_MoveChild1,
/*  8185*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  8188*/      OPC_RecordChild0, // #2 = $Rm
/*  8189*/      OPC_CheckChild1Integer, 16, 
/*  8191*/      OPC_CheckChild1Type, MVT::i32,
/*  8193*/      OPC_MoveParent,
/*  8194*/      OPC_MoveParent,
/*  8195*/      OPC_CheckType, MVT::i32,
/*  8197*/      OPC_Scope, 19, /*->8218*/ // 2 children in Scope
/*  8199*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  8201*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8204*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8207*/        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)
/*  8218*/      /*Scope*/ 19, /*->8238*/
/*  8219*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  8221*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8224*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8227*/        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)
/*  8238*/      0, /*End of Scope*/
/*  8239*/    /*Scope*/ 70, /*->8310*/
/*  8240*/      OPC_MoveChild0,
/*  8241*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  8244*/      OPC_MoveChild0,
/*  8245*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  8248*/      OPC_RecordChild0, // #0 = $Rn
/*  8249*/      OPC_CheckChild1Integer, 16, 
/*  8251*/      OPC_CheckChild1Type, MVT::i32,
/*  8253*/      OPC_MoveParent,
/*  8254*/      OPC_MoveChild1,
/*  8255*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  8258*/      OPC_RecordChild0, // #1 = $Rm
/*  8259*/      OPC_CheckChild1Integer, 16, 
/*  8261*/      OPC_CheckChild1Type, MVT::i32,
/*  8263*/      OPC_MoveParent,
/*  8264*/      OPC_MoveParent,
/*  8265*/      OPC_RecordChild1, // #2 = $Ra
/*  8266*/      OPC_CheckType, MVT::i32,
/*  8268*/      OPC_Scope, 19, /*->8289*/ // 2 children in Scope
/*  8270*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  8272*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8275*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8278*/        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)
/*  8289*/      /*Scope*/ 19, /*->8309*/
/*  8290*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  8292*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8295*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8298*/        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)
/*  8309*/      0, /*End of Scope*/
/*  8310*/    /*Scope*/ 4|128,1/*132*/, /*->8444*/
/*  8312*/      OPC_RecordChild0, // #0 = $Ra
/*  8313*/      OPC_MoveChild1,
/*  8314*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  8317*/      OPC_MoveChild0,
/*  8318*/      OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->8381
/*  8322*/        OPC_RecordChild0, // #1 = $Rn
/*  8323*/        OPC_MoveChild1,
/*  8324*/        OPC_CheckValueType, MVT::i16,
/*  8326*/        OPC_MoveParent,
/*  8327*/        OPC_MoveParent,
/*  8328*/        OPC_MoveChild1,
/*  8329*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  8332*/        OPC_RecordChild0, // #2 = $Rm
/*  8333*/        OPC_CheckChild1Integer, 16, 
/*  8335*/        OPC_CheckChild1Type, MVT::i32,
/*  8337*/        OPC_MoveParent,
/*  8338*/        OPC_MoveParent,
/*  8339*/        OPC_Scope, 19, /*->8360*/ // 2 children in Scope
/*  8341*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  8343*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8346*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8349*/          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)
/*  8360*/        /*Scope*/ 19, /*->8380*/
/*  8361*/          OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  8363*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8366*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8369*/          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)
/*  8380*/        0, /*End of Scope*/
/*  8381*/      /*SwitchOpcode*/ 59, TARGET_VAL(ISD::SRA),// ->8443
/*  8384*/        OPC_RecordChild0, // #1 = $Rn
/*  8385*/        OPC_CheckChild1Integer, 16, 
/*  8387*/        OPC_CheckChild1Type, MVT::i32,
/*  8389*/        OPC_MoveParent,
/*  8390*/        OPC_MoveChild1,
/*  8391*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  8394*/        OPC_RecordChild0, // #2 = $Rm
/*  8395*/        OPC_MoveChild1,
/*  8396*/        OPC_CheckValueType, MVT::i16,
/*  8398*/        OPC_MoveParent,
/*  8399*/        OPC_MoveParent,
/*  8400*/        OPC_MoveParent,
/*  8401*/        OPC_Scope, 19, /*->8422*/ // 2 children in Scope
/*  8403*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  8405*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8408*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8411*/          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)
/*  8422*/        /*Scope*/ 19, /*->8442*/
/*  8423*/          OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  8425*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8428*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8431*/          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)
/*  8442*/        0, /*End of Scope*/
/*  8443*/      0, // EndSwitchOpcode
/*  8444*/    /*Scope*/ 5|128,1/*133*/, /*->8579*/
/*  8446*/      OPC_MoveChild0,
/*  8447*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  8450*/      OPC_MoveChild0,
/*  8451*/      OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->8515
/*  8455*/        OPC_RecordChild0, // #0 = $Rn
/*  8456*/        OPC_MoveChild1,
/*  8457*/        OPC_CheckValueType, MVT::i16,
/*  8459*/        OPC_MoveParent,
/*  8460*/        OPC_MoveParent,
/*  8461*/        OPC_MoveChild1,
/*  8462*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  8465*/        OPC_RecordChild0, // #1 = $Rm
/*  8466*/        OPC_CheckChild1Integer, 16, 
/*  8468*/        OPC_CheckChild1Type, MVT::i32,
/*  8470*/        OPC_MoveParent,
/*  8471*/        OPC_MoveParent,
/*  8472*/        OPC_RecordChild1, // #2 = $Ra
/*  8473*/        OPC_Scope, 19, /*->8494*/ // 2 children in Scope
/*  8475*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  8477*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8480*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8483*/          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)
/*  8494*/        /*Scope*/ 19, /*->8514*/
/*  8495*/          OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  8497*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8500*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8503*/          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)
/*  8514*/        0, /*End of Scope*/
/*  8515*/      /*SwitchOpcode*/ 60, TARGET_VAL(ISD::SRA),// ->8578
/*  8518*/        OPC_RecordChild0, // #0 = $Rm
/*  8519*/        OPC_CheckChild1Integer, 16, 
/*  8521*/        OPC_CheckChild1Type, MVT::i32,
/*  8523*/        OPC_MoveParent,
/*  8524*/        OPC_MoveChild1,
/*  8525*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  8528*/        OPC_RecordChild0, // #1 = $Rn
/*  8529*/        OPC_MoveChild1,
/*  8530*/        OPC_CheckValueType, MVT::i16,
/*  8532*/        OPC_MoveParent,
/*  8533*/        OPC_MoveParent,
/*  8534*/        OPC_MoveParent,
/*  8535*/        OPC_RecordChild1, // #2 = $Ra
/*  8536*/        OPC_Scope, 19, /*->8557*/ // 2 children in Scope
/*  8538*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  8540*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8543*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8546*/          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)
/*  8557*/        /*Scope*/ 19, /*->8577*/
/*  8558*/          OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  8560*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8563*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8566*/          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)
/*  8577*/        0, /*End of Scope*/
/*  8578*/      0, // EndSwitchOpcode
/*  8579*/    /*Scope*/ 97|128,1/*225*/, /*->8806*/
/*  8581*/      OPC_RecordChild0, // #0 = $Rn
/*  8582*/      OPC_Scope, 30, /*->8614*/ // 3 children in Scope
/*  8584*/        OPC_RecordChild1, // #1 = $shift
/*  8585*/        OPC_CheckType, MVT::i32,
/*  8587*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  8589*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/*  8592*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8595*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8598*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8601*/        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)
/*  8614*/      /*Scope*/ 30|128,1/*158*/, /*->8774*/
/*  8616*/        OPC_MoveChild1,
/*  8617*/        OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  8620*/        OPC_Scope, 37, /*->8659*/ // 4 children in Scope
/*  8622*/          OPC_RecordChild0, // #1 = $a
/*  8623*/          OPC_MoveChild0,
/*  8624*/          OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  8626*/          OPC_MoveParent,
/*  8627*/          OPC_MoveChild1,
/*  8628*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  8631*/          OPC_RecordChild0, // #2 = $b
/*  8632*/          OPC_CheckChild1Integer, 16, 
/*  8634*/          OPC_CheckChild1Type, MVT::i32,
/*  8636*/          OPC_MoveParent,
/*  8637*/          OPC_MoveParent,
/*  8638*/          OPC_CheckType, MVT::i32,
/*  8640*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  8642*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8645*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8648*/          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)
/*  8659*/        /*Scope*/ 37, /*->8697*/
/*  8660*/          OPC_MoveChild0,
/*  8661*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  8664*/          OPC_RecordChild0, // #1 = $a
/*  8665*/          OPC_CheckChild1Integer, 16, 
/*  8667*/          OPC_CheckChild1Type, MVT::i32,
/*  8669*/          OPC_MoveParent,
/*  8670*/          OPC_RecordChild1, // #2 = $b
/*  8671*/          OPC_MoveChild1,
/*  8672*/          OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  8674*/          OPC_MoveParent,
/*  8675*/          OPC_MoveParent,
/*  8676*/          OPC_CheckType, MVT::i32,
/*  8678*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  8680*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8683*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8686*/          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)
/*  8697*/        /*Scope*/ 37, /*->8735*/
/*  8698*/          OPC_RecordChild0, // #1 = $Rn
/*  8699*/          OPC_MoveChild0,
/*  8700*/          OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  8702*/          OPC_MoveParent,
/*  8703*/          OPC_MoveChild1,
/*  8704*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  8707*/          OPC_RecordChild0, // #2 = $Rm
/*  8708*/          OPC_CheckChild1Integer, 16, 
/*  8710*/          OPC_CheckChild1Type, MVT::i32,
/*  8712*/          OPC_MoveParent,
/*  8713*/          OPC_MoveParent,
/*  8714*/          OPC_CheckType, MVT::i32,
/*  8716*/          OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  8718*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8721*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8724*/          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)
/*  8735*/        /*Scope*/ 37, /*->8773*/
/*  8736*/          OPC_MoveChild0,
/*  8737*/          OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  8740*/          OPC_RecordChild0, // #1 = $Rn
/*  8741*/          OPC_CheckChild1Integer, 16, 
/*  8743*/          OPC_CheckChild1Type, MVT::i32,
/*  8745*/          OPC_MoveParent,
/*  8746*/          OPC_RecordChild1, // #2 = $Rm
/*  8747*/          OPC_MoveChild1,
/*  8748*/          OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  8750*/          OPC_MoveParent,
/*  8751*/          OPC_MoveParent,
/*  8752*/          OPC_CheckType, MVT::i32,
/*  8754*/          OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  8756*/          OPC_EmitInteger, MVT::i32, 14, 
/*  8759*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8762*/          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)
/*  8773*/        0, /*End of Scope*/
/*  8774*/      /*Scope*/ 30, /*->8805*/
/*  8775*/        OPC_RecordChild1, // #1 = $Rn
/*  8776*/        OPC_CheckType, MVT::i32,
/*  8778*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  8780*/        OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/*  8783*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8786*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8789*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8792*/        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)
/*  8805*/      0, /*End of Scope*/
/*  8806*/    /*Scope*/ 34|128,1/*162*/, /*->8970*/
/*  8808*/      OPC_MoveChild0,
/*  8809*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  8812*/      OPC_Scope, 38, /*->8852*/ // 4 children in Scope
/*  8814*/        OPC_RecordChild0, // #0 = $a
/*  8815*/        OPC_MoveChild0,
/*  8816*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  8818*/        OPC_MoveParent,
/*  8819*/        OPC_MoveChild1,
/*  8820*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  8823*/        OPC_RecordChild0, // #1 = $b
/*  8824*/        OPC_CheckChild1Integer, 16, 
/*  8826*/        OPC_CheckChild1Type, MVT::i32,
/*  8828*/        OPC_MoveParent,
/*  8829*/        OPC_MoveParent,
/*  8830*/        OPC_RecordChild1, // #2 = $acc
/*  8831*/        OPC_CheckType, MVT::i32,
/*  8833*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  8835*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8838*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8841*/        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)
/*  8852*/      /*Scope*/ 38, /*->8891*/
/*  8853*/        OPC_MoveChild0,
/*  8854*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  8857*/        OPC_RecordChild0, // #0 = $b
/*  8858*/        OPC_CheckChild1Integer, 16, 
/*  8860*/        OPC_CheckChild1Type, MVT::i32,
/*  8862*/        OPC_MoveParent,
/*  8863*/        OPC_RecordChild1, // #1 = $a
/*  8864*/        OPC_MoveChild1,
/*  8865*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  8867*/        OPC_MoveParent,
/*  8868*/        OPC_MoveParent,
/*  8869*/        OPC_RecordChild1, // #2 = $acc
/*  8870*/        OPC_CheckType, MVT::i32,
/*  8872*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  8874*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8877*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8880*/        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)
/*  8891*/      /*Scope*/ 38, /*->8930*/
/*  8892*/        OPC_RecordChild0, // #0 = $Rn
/*  8893*/        OPC_MoveChild0,
/*  8894*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  8896*/        OPC_MoveParent,
/*  8897*/        OPC_MoveChild1,
/*  8898*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  8901*/        OPC_RecordChild0, // #1 = $Rm
/*  8902*/        OPC_CheckChild1Integer, 16, 
/*  8904*/        OPC_CheckChild1Type, MVT::i32,
/*  8906*/        OPC_MoveParent,
/*  8907*/        OPC_MoveParent,
/*  8908*/        OPC_RecordChild1, // #2 = $Ra
/*  8909*/        OPC_CheckType, MVT::i32,
/*  8911*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  8913*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8916*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8919*/        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)
/*  8930*/      /*Scope*/ 38, /*->8969*/
/*  8931*/        OPC_MoveChild0,
/*  8932*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/*  8935*/        OPC_RecordChild0, // #0 = $Rm
/*  8936*/        OPC_CheckChild1Integer, 16, 
/*  8938*/        OPC_CheckChild1Type, MVT::i32,
/*  8940*/        OPC_MoveParent,
/*  8941*/        OPC_RecordChild1, // #1 = $Rn
/*  8942*/        OPC_MoveChild1,
/*  8943*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  8945*/        OPC_MoveParent,
/*  8946*/        OPC_MoveParent,
/*  8947*/        OPC_RecordChild1, // #2 = $Ra
/*  8948*/        OPC_CheckType, MVT::i32,
/*  8950*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  8952*/        OPC_EmitInteger, MVT::i32, 14, 
/*  8955*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  8958*/        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)
/*  8969*/      0, /*End of Scope*/
/*  8970*/    /*Scope*/ 42, /*->9013*/
/*  8971*/      OPC_RecordChild0, // #0 = $Rn
/*  8972*/      OPC_MoveChild1,
/*  8973*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  8976*/      OPC_MoveChild0,
/*  8977*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  8980*/      OPC_RecordChild0, // #1 = $Rm
/*  8981*/      OPC_CheckChild1Integer, 24, 
/*  8983*/      OPC_CheckChild1Type, MVT::i32,
/*  8985*/      OPC_MoveParent,
/*  8986*/      OPC_MoveChild1,
/*  8987*/      OPC_CheckValueType, MVT::i16,
/*  8989*/      OPC_MoveParent,
/*  8990*/      OPC_MoveParent,
/*  8991*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  8993*/      OPC_EmitInteger, MVT::i32, 3, 
/*  8996*/      OPC_EmitInteger, MVT::i32, 14, 
/*  8999*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9002*/      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] })
/*  9013*/    /*Scope*/ 42, /*->9056*/
/*  9014*/      OPC_MoveChild0,
/*  9015*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  9018*/      OPC_MoveChild0,
/*  9019*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*  9022*/      OPC_RecordChild0, // #0 = $Rm
/*  9023*/      OPC_CheckChild1Integer, 24, 
/*  9025*/      OPC_CheckChild1Type, MVT::i32,
/*  9027*/      OPC_MoveParent,
/*  9028*/      OPC_MoveChild1,
/*  9029*/      OPC_CheckValueType, MVT::i16,
/*  9031*/      OPC_MoveParent,
/*  9032*/      OPC_MoveParent,
/*  9033*/      OPC_RecordChild1, // #1 = $Rn
/*  9034*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  9036*/      OPC_EmitInteger, MVT::i32, 3, 
/*  9039*/      OPC_EmitInteger, MVT::i32, 14, 
/*  9042*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9045*/      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] })
/*  9056*/    /*Scope*/ 35|128,2/*291*/, /*->9349*/
/*  9058*/      OPC_RecordChild0, // #0 = $Rn
/*  9059*/      OPC_MoveChild1,
/*  9060*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  9063*/      OPC_MoveChild0,
/*  9064*/      OPC_SwitchOpcode /*2 cases */, 1|128,1/*129*/, TARGET_VAL(ISD::ROTR),// ->9198
/*  9069*/        OPC_RecordChild0, // #1 = $Rm
/*  9070*/        OPC_RecordChild1, // #2 = $rot
/*  9071*/        OPC_MoveChild1,
/*  9072*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9075*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  9077*/        OPC_CheckType, MVT::i32,
/*  9079*/        OPC_MoveParent,
/*  9080*/        OPC_MoveParent,
/*  9081*/        OPC_MoveChild1,
/*  9082*/        OPC_Scope, 56, /*->9140*/ // 2 children in Scope
/*  9084*/          OPC_CheckValueType, MVT::i8,
/*  9086*/          OPC_MoveParent,
/*  9087*/          OPC_MoveParent,
/*  9088*/          OPC_Scope, 24, /*->9114*/ // 2 children in Scope
/*  9090*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  9092*/            OPC_EmitConvertToTarget, 2,
/*  9094*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9097*/            OPC_EmitInteger, MVT::i32, 14, 
/*  9100*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9103*/            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))
/*  9114*/          /*Scope*/ 24, /*->9139*/
/*  9115*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  9117*/            OPC_EmitConvertToTarget, 2,
/*  9119*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9122*/            OPC_EmitInteger, MVT::i32, 14, 
/*  9125*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9128*/            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))
/*  9139*/          0, /*End of Scope*/
/*  9140*/        /*Scope*/ 56, /*->9197*/
/*  9141*/          OPC_CheckValueType, MVT::i16,
/*  9143*/          OPC_MoveParent,
/*  9144*/          OPC_MoveParent,
/*  9145*/          OPC_Scope, 24, /*->9171*/ // 2 children in Scope
/*  9147*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  9149*/            OPC_EmitConvertToTarget, 2,
/*  9151*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9154*/            OPC_EmitInteger, MVT::i32, 14, 
/*  9157*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9160*/            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))
/*  9171*/          /*Scope*/ 24, /*->9196*/
/*  9172*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  9174*/            OPC_EmitConvertToTarget, 2,
/*  9176*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9179*/            OPC_EmitInteger, MVT::i32, 14, 
/*  9182*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9185*/            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))
/*  9196*/          0, /*End of Scope*/
/*  9197*/        0, /*End of Scope*/
/*  9198*/      /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(ISD::SRL),// ->9348
/*  9202*/        OPC_RecordChild0, // #1 = $Rm
/*  9203*/        OPC_RecordChild1, // #2 = $rot
/*  9204*/        OPC_MoveChild1,
/*  9205*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9208*/        OPC_CheckType, MVT::i32,
/*  9210*/        OPC_Scope, 33, /*->9245*/ // 4 children in Scope
/*  9212*/          OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  9214*/          OPC_MoveParent,
/*  9215*/          OPC_MoveParent,
/*  9216*/          OPC_MoveChild1,
/*  9217*/          OPC_CheckValueType, MVT::i8,
/*  9219*/          OPC_MoveParent,
/*  9220*/          OPC_MoveParent,
/*  9221*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  9223*/          OPC_EmitConvertToTarget, 2,
/*  9225*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9228*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9231*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9234*/          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))
/*  9245*/        /*Scope*/ 33, /*->9279*/
/*  9246*/          OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  9248*/          OPC_MoveParent,
/*  9249*/          OPC_MoveParent,
/*  9250*/          OPC_MoveChild1,
/*  9251*/          OPC_CheckValueType, MVT::i16,
/*  9253*/          OPC_MoveParent,
/*  9254*/          OPC_MoveParent,
/*  9255*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  9257*/          OPC_EmitConvertToTarget, 2,
/*  9259*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9262*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9265*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9268*/          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))
/*  9279*/        /*Scope*/ 33, /*->9313*/
/*  9280*/          OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  9282*/          OPC_MoveParent,
/*  9283*/          OPC_MoveParent,
/*  9284*/          OPC_MoveChild1,
/*  9285*/          OPC_CheckValueType, MVT::i8,
/*  9287*/          OPC_MoveParent,
/*  9288*/          OPC_MoveParent,
/*  9289*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  9291*/          OPC_EmitConvertToTarget, 2,
/*  9293*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9296*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9299*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9302*/          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))
/*  9313*/        /*Scope*/ 33, /*->9347*/
/*  9314*/          OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  9316*/          OPC_MoveParent,
/*  9317*/          OPC_MoveParent,
/*  9318*/          OPC_MoveChild1,
/*  9319*/          OPC_CheckValueType, MVT::i16,
/*  9321*/          OPC_MoveParent,
/*  9322*/          OPC_MoveParent,
/*  9323*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  9325*/          OPC_EmitConvertToTarget, 2,
/*  9327*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9330*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9333*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9336*/          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))
/*  9347*/        0, /*End of Scope*/
/*  9348*/      0, // EndSwitchOpcode
/*  9349*/    /*Scope*/ 40|128,2/*296*/, /*->9647*/
/*  9351*/      OPC_MoveChild0,
/*  9352*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  9355*/      OPC_MoveChild0,
/*  9356*/      OPC_SwitchOpcode /*2 cases */, 3|128,1/*131*/, TARGET_VAL(ISD::ROTR),// ->9492
/*  9361*/        OPC_RecordChild0, // #0 = $Rm
/*  9362*/        OPC_RecordChild1, // #1 = $rot
/*  9363*/        OPC_MoveChild1,
/*  9364*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9367*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  9369*/        OPC_CheckType, MVT::i32,
/*  9371*/        OPC_MoveParent,
/*  9372*/        OPC_MoveParent,
/*  9373*/        OPC_MoveChild1,
/*  9374*/        OPC_Scope, 57, /*->9433*/ // 2 children in Scope
/*  9376*/          OPC_CheckValueType, MVT::i8,
/*  9378*/          OPC_MoveParent,
/*  9379*/          OPC_MoveParent,
/*  9380*/          OPC_RecordChild1, // #2 = $Rn
/*  9381*/          OPC_Scope, 24, /*->9407*/ // 2 children in Scope
/*  9383*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  9385*/            OPC_EmitConvertToTarget, 1,
/*  9387*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9390*/            OPC_EmitInteger, MVT::i32, 14, 
/*  9393*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9396*/            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))
/*  9407*/          /*Scope*/ 24, /*->9432*/
/*  9408*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  9410*/            OPC_EmitConvertToTarget, 1,
/*  9412*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9415*/            OPC_EmitInteger, MVT::i32, 14, 
/*  9418*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9421*/            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))
/*  9432*/          0, /*End of Scope*/
/*  9433*/        /*Scope*/ 57, /*->9491*/
/*  9434*/          OPC_CheckValueType, MVT::i16,
/*  9436*/          OPC_MoveParent,
/*  9437*/          OPC_MoveParent,
/*  9438*/          OPC_RecordChild1, // #2 = $Rn
/*  9439*/          OPC_Scope, 24, /*->9465*/ // 2 children in Scope
/*  9441*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  9443*/            OPC_EmitConvertToTarget, 1,
/*  9445*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9448*/            OPC_EmitInteger, MVT::i32, 14, 
/*  9451*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9454*/            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))
/*  9465*/          /*Scope*/ 24, /*->9490*/
/*  9466*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  9468*/            OPC_EmitConvertToTarget, 1,
/*  9470*/            OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9473*/            OPC_EmitInteger, MVT::i32, 14, 
/*  9476*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9479*/            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))
/*  9490*/          0, /*End of Scope*/
/*  9491*/        0, /*End of Scope*/
/*  9492*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::SRL),// ->9646
/*  9496*/        OPC_RecordChild0, // #0 = $Rm
/*  9497*/        OPC_RecordChild1, // #1 = $rot
/*  9498*/        OPC_MoveChild1,
/*  9499*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9502*/        OPC_CheckType, MVT::i32,
/*  9504*/        OPC_Scope, 34, /*->9540*/ // 4 children in Scope
/*  9506*/          OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  9508*/          OPC_MoveParent,
/*  9509*/          OPC_MoveParent,
/*  9510*/          OPC_MoveChild1,
/*  9511*/          OPC_CheckValueType, MVT::i8,
/*  9513*/          OPC_MoveParent,
/*  9514*/          OPC_MoveParent,
/*  9515*/          OPC_RecordChild1, // #2 = $Rn
/*  9516*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  9518*/          OPC_EmitConvertToTarget, 1,
/*  9520*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9523*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9526*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9529*/          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))
/*  9540*/        /*Scope*/ 34, /*->9575*/
/*  9541*/          OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  9543*/          OPC_MoveParent,
/*  9544*/          OPC_MoveParent,
/*  9545*/          OPC_MoveChild1,
/*  9546*/          OPC_CheckValueType, MVT::i16,
/*  9548*/          OPC_MoveParent,
/*  9549*/          OPC_MoveParent,
/*  9550*/          OPC_RecordChild1, // #2 = $Rn
/*  9551*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*  9553*/          OPC_EmitConvertToTarget, 1,
/*  9555*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9558*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9561*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9564*/          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))
/*  9575*/        /*Scope*/ 34, /*->9610*/
/*  9576*/          OPC_CheckPredicate, 14, // Predicate_rot_imm
/*  9578*/          OPC_MoveParent,
/*  9579*/          OPC_MoveParent,
/*  9580*/          OPC_MoveChild1,
/*  9581*/          OPC_CheckValueType, MVT::i8,
/*  9583*/          OPC_MoveParent,
/*  9584*/          OPC_MoveParent,
/*  9585*/          OPC_RecordChild1, // #2 = $Rn
/*  9586*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  9588*/          OPC_EmitConvertToTarget, 1,
/*  9590*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9593*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9596*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9599*/          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))
/*  9610*/        /*Scope*/ 34, /*->9645*/
/*  9611*/          OPC_CheckPredicate, 15, // Predicate_imm8_or_16
/*  9613*/          OPC_MoveParent,
/*  9614*/          OPC_MoveParent,
/*  9615*/          OPC_MoveChild1,
/*  9616*/          OPC_CheckValueType, MVT::i16,
/*  9618*/          OPC_MoveParent,
/*  9619*/          OPC_MoveParent,
/*  9620*/          OPC_RecordChild1, // #2 = $Rn
/*  9621*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*  9623*/          OPC_EmitConvertToTarget, 1,
/*  9625*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/*  9628*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9631*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9634*/          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))
/*  9645*/        0, /*End of Scope*/
/*  9646*/      0, // EndSwitchOpcode
/*  9647*/    /*Scope*/ 55|128,1/*183*/, /*->9832*/
/*  9649*/      OPC_RecordChild0, // #0 = $Rn
/*  9650*/      OPC_Scope, 29, /*->9681*/ // 5 children in Scope
/*  9652*/        OPC_RecordChild1, // #1 = $shift
/*  9653*/        OPC_CheckType, MVT::i32,
/*  9655*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  9657*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/*  9660*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9663*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9666*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9669*/        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)
/*  9681*/      /*Scope*/ 44, /*->9726*/
/*  9682*/        OPC_MoveChild1,
/*  9683*/        OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  9686*/        OPC_MoveChild0,
/*  9687*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  9690*/        OPC_RecordChild0, // #1 = $Rn
/*  9691*/        OPC_MoveChild1,
/*  9692*/        OPC_CheckValueType, MVT::i16,
/*  9694*/        OPC_MoveParent,
/*  9695*/        OPC_MoveParent,
/*  9696*/        OPC_MoveChild1,
/*  9697*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  9700*/        OPC_RecordChild0, // #2 = $Rm
/*  9701*/        OPC_MoveChild1,
/*  9702*/        OPC_CheckValueType, MVT::i16,
/*  9704*/        OPC_MoveParent,
/*  9705*/        OPC_MoveParent,
/*  9706*/        OPC_MoveParent,
/*  9707*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  9709*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9712*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9715*/        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)
/*  9726*/      /*Scope*/ 29, /*->9756*/
/*  9727*/        OPC_RecordChild1, // #1 = $ShiftedRm
/*  9728*/        OPC_CheckType, MVT::i32,
/*  9730*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  9732*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/*  9735*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9738*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9741*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9744*/        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)
/*  9756*/      /*Scope*/ 44, /*->9801*/
/*  9757*/        OPC_MoveChild1,
/*  9758*/        OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  9761*/        OPC_MoveChild0,
/*  9762*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  9765*/        OPC_RecordChild0, // #1 = $Rn
/*  9766*/        OPC_MoveChild1,
/*  9767*/        OPC_CheckValueType, MVT::i16,
/*  9769*/        OPC_MoveParent,
/*  9770*/        OPC_MoveParent,
/*  9771*/        OPC_MoveChild1,
/*  9772*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  9775*/        OPC_RecordChild0, // #2 = $Rm
/*  9776*/        OPC_MoveChild1,
/*  9777*/        OPC_CheckValueType, MVT::i16,
/*  9779*/        OPC_MoveParent,
/*  9780*/        OPC_MoveParent,
/*  9781*/        OPC_MoveParent,
/*  9782*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  9784*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9787*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9790*/        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)
/*  9801*/      /*Scope*/ 29, /*->9831*/
/*  9802*/        OPC_RecordChild1, // #1 = $Rn
/*  9803*/        OPC_CheckType, MVT::i32,
/*  9805*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*  9807*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/*  9810*/        OPC_EmitInteger, MVT::i32, 14, 
/*  9813*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9816*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9819*/        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)
/*  9831*/      0, /*End of Scope*/
/*  9832*/    /*Scope*/ 45, /*->9878*/
/*  9833*/      OPC_MoveChild0,
/*  9834*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  9837*/      OPC_MoveChild0,
/*  9838*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  9841*/      OPC_RecordChild0, // #0 = $Rn
/*  9842*/      OPC_MoveChild1,
/*  9843*/      OPC_CheckValueType, MVT::i16,
/*  9845*/      OPC_MoveParent,
/*  9846*/      OPC_MoveParent,
/*  9847*/      OPC_MoveChild1,
/*  9848*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  9851*/      OPC_RecordChild0, // #1 = $Rm
/*  9852*/      OPC_MoveChild1,
/*  9853*/      OPC_CheckValueType, MVT::i16,
/*  9855*/      OPC_MoveParent,
/*  9856*/      OPC_MoveParent,
/*  9857*/      OPC_MoveParent,
/*  9858*/      OPC_RecordChild1, // #2 = $Ra
/*  9859*/      OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  9861*/      OPC_EmitInteger, MVT::i32, 14, 
/*  9864*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9867*/      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)
/*  9878*/    /*Scope*/ 30, /*->9909*/
/*  9879*/      OPC_RecordChild0, // #0 = $ShiftedRm
/*  9880*/      OPC_RecordChild1, // #1 = $Rn
/*  9881*/      OPC_CheckType, MVT::i32,
/*  9883*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*  9885*/      OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/*  9888*/      OPC_EmitInteger, MVT::i32, 14, 
/*  9891*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9894*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9897*/      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)
/*  9909*/    /*Scope*/ 45, /*->9955*/
/*  9910*/      OPC_MoveChild0,
/*  9911*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  9914*/      OPC_MoveChild0,
/*  9915*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  9918*/      OPC_RecordChild0, // #0 = $Rn
/*  9919*/      OPC_MoveChild1,
/*  9920*/      OPC_CheckValueType, MVT::i16,
/*  9922*/      OPC_MoveParent,
/*  9923*/      OPC_MoveParent,
/*  9924*/      OPC_MoveChild1,
/*  9925*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  9928*/      OPC_RecordChild0, // #1 = $Rm
/*  9929*/      OPC_MoveChild1,
/*  9930*/      OPC_CheckValueType, MVT::i16,
/*  9932*/      OPC_MoveParent,
/*  9933*/      OPC_MoveParent,
/*  9934*/      OPC_MoveParent,
/*  9935*/      OPC_RecordChild1, // #2 = $Ra
/*  9936*/      OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*  9938*/      OPC_EmitInteger, MVT::i32, 14, 
/*  9941*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9944*/      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)
/*  9955*/    /*Scope*/ 102, /*->10058*/
/*  9956*/      OPC_RecordChild0, // #0 = $acc
/*  9957*/      OPC_MoveChild1,
/*  9958*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*  9961*/      OPC_Scope, 58, /*->10021*/ // 2 children in Scope
/*  9963*/        OPC_RecordChild0, // #1 = $a
/*  9964*/        OPC_MoveChild0,
/*  9965*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/*  9967*/        OPC_MoveParent,
/*  9968*/        OPC_MoveChild1,
/*  9969*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/*  9972*/        OPC_RecordChild0, // #2 = $b
/*  9973*/        OPC_MoveChild1,
/*  9974*/        OPC_CheckValueType, MVT::i16,
/*  9976*/        OPC_MoveParent,
/*  9977*/        OPC_MoveParent,
/*  9978*/        OPC_MoveParent,
/*  9979*/        OPC_Scope, 19, /*->10000*/ // 2 children in Scope
/*  9981*/          OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/*  9983*/          OPC_EmitInteger, MVT::i32, 14, 
/*  9986*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*  9989*/          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, (sext_inreg:{ *:[i32] } GPR:{ *:[i32] }:$b, i16:{ *:[Other] }))) - Complexity = 10
                    // Dst: (SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 10000*/        /*Scope*/ 19, /*->10020*/
/* 10001*/          OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 10003*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10006*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10009*/          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, (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i16:{ *:[Other] }))) - Complexity = 10
                    // Dst: (t2SMLABB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 10020*/        0, /*End of Scope*/
/* 10021*/      /*Scope*/ 35, /*->10057*/
/* 10022*/        OPC_MoveChild0,
/* 10023*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 10026*/        OPC_RecordChild0, // #1 = $b
/* 10027*/        OPC_MoveChild1,
/* 10028*/        OPC_CheckValueType, MVT::i16,
/* 10030*/        OPC_MoveParent,
/* 10031*/        OPC_MoveParent,
/* 10032*/        OPC_RecordChild1, // #2 = $a
/* 10033*/        OPC_MoveChild1,
/* 10034*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 10036*/        OPC_MoveParent,
/* 10037*/        OPC_MoveParent,
/* 10038*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 10040*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10043*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10046*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABB), 0,
                      MVT::i32, 5/*#Ops*/, 2, 1, 0, 3, 4, 
                  // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$acc, (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } GPR:{ *:[i32] }:$b, i16:{ *:[Other] }), GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$a)) - Complexity = 10
                  // Dst: (SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 10057*/      0, /*End of Scope*/
/* 10058*/    /*Scope*/ 80, /*->10139*/
/* 10059*/      OPC_MoveChild0,
/* 10060*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 10063*/      OPC_Scope, 36, /*->10101*/ // 2 children in Scope
/* 10065*/        OPC_RecordChild0, // #0 = $a
/* 10066*/        OPC_MoveChild0,
/* 10067*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 10069*/        OPC_MoveParent,
/* 10070*/        OPC_MoveChild1,
/* 10071*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 10074*/        OPC_RecordChild0, // #1 = $b
/* 10075*/        OPC_MoveChild1,
/* 10076*/        OPC_CheckValueType, MVT::i16,
/* 10078*/        OPC_MoveParent,
/* 10079*/        OPC_MoveParent,
/* 10080*/        OPC_MoveParent,
/* 10081*/        OPC_RecordChild1, // #2 = $acc
/* 10082*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 10084*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10087*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10090*/        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, (sext_inreg:{ *:[i32] } GPR:{ *:[i32] }:$b, i16:{ *:[Other] })), GPR:{ *:[i32] }:$acc) - Complexity = 10
                  // Dst: (SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 10101*/      /*Scope*/ 36, /*->10138*/
/* 10102*/        OPC_MoveChild0,
/* 10103*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 10106*/        OPC_RecordChild0, // #0 = $b
/* 10107*/        OPC_MoveChild1,
/* 10108*/        OPC_CheckValueType, MVT::i16,
/* 10110*/        OPC_MoveParent,
/* 10111*/        OPC_MoveParent,
/* 10112*/        OPC_RecordChild1, // #1 = $a
/* 10113*/        OPC_MoveChild1,
/* 10114*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 10116*/        OPC_MoveParent,
/* 10117*/        OPC_MoveParent,
/* 10118*/        OPC_RecordChild1, // #2 = $acc
/* 10119*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 10121*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10124*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10127*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABB), 0,
                      MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } GPR:{ *:[i32] }:$b, i16:{ *:[Other] }), GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$a), GPR:{ *:[i32] }:$acc) - Complexity = 10
                  // Dst: (SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 10138*/      0, /*End of Scope*/
/* 10139*/    /*Scope*/ 40, /*->10180*/
/* 10140*/      OPC_RecordChild0, // #0 = $Ra
/* 10141*/      OPC_MoveChild1,
/* 10142*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 10145*/      OPC_MoveChild0,
/* 10146*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 10149*/      OPC_RecordChild0, // #1 = $Rm
/* 10150*/      OPC_MoveChild1,
/* 10151*/      OPC_CheckValueType, MVT::i16,
/* 10153*/      OPC_MoveParent,
/* 10154*/      OPC_MoveParent,
/* 10155*/      OPC_RecordChild1, // #2 = $Rn
/* 10156*/      OPC_MoveChild1,
/* 10157*/      OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 10159*/      OPC_MoveParent,
/* 10160*/      OPC_MoveParent,
/* 10161*/      OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 10163*/      OPC_EmitInteger, MVT::i32, 14, 
/* 10166*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10169*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABB), 0,
                    MVT::i32, 5/*#Ops*/, 2, 1, 0, 3, 4, 
                // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$Ra, (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i16:{ *:[Other] }), GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rn)) - Complexity = 10
                // Dst: (t2SMLABB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 10180*/    /*Scope*/ 80, /*->10261*/
/* 10181*/      OPC_MoveChild0,
/* 10182*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 10185*/      OPC_Scope, 36, /*->10223*/ // 2 children in Scope
/* 10187*/        OPC_RecordChild0, // #0 = $Rn
/* 10188*/        OPC_MoveChild0,
/* 10189*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 10191*/        OPC_MoveParent,
/* 10192*/        OPC_MoveChild1,
/* 10193*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 10196*/        OPC_RecordChild0, // #1 = $Rm
/* 10197*/        OPC_MoveChild1,
/* 10198*/        OPC_CheckValueType, MVT::i16,
/* 10200*/        OPC_MoveParent,
/* 10201*/        OPC_MoveParent,
/* 10202*/        OPC_MoveParent,
/* 10203*/        OPC_RecordChild1, // #2 = $Ra
/* 10204*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 10206*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10209*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10212*/        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, (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i16:{ *:[Other] })), rGPR:{ *:[i32] }:$Ra) - Complexity = 10
                  // Dst: (t2SMLABB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 10223*/      /*Scope*/ 36, /*->10260*/
/* 10224*/        OPC_MoveChild0,
/* 10225*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 10228*/        OPC_RecordChild0, // #0 = $Rm
/* 10229*/        OPC_MoveChild1,
/* 10230*/        OPC_CheckValueType, MVT::i16,
/* 10232*/        OPC_MoveParent,
/* 10233*/        OPC_MoveParent,
/* 10234*/        OPC_RecordChild1, // #1 = $Rn
/* 10235*/        OPC_MoveChild1,
/* 10236*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 10238*/        OPC_MoveParent,
/* 10239*/        OPC_MoveParent,
/* 10240*/        OPC_RecordChild1, // #2 = $Ra
/* 10241*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 10243*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10246*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10249*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABB), 0,
                      MVT::i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (add:{ *:[i32] } (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i16:{ *:[Other] }), GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rn), rGPR:{ *:[i32] }:$Ra) - Complexity = 10
                  // Dst: (t2SMLABB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 10260*/      0, /*End of Scope*/
/* 10261*/    /*Scope*/ 115, /*->10377*/
/* 10262*/      OPC_RecordChild0, // #0 = $acc
/* 10263*/      OPC_Scope, 36, /*->10301*/ // 3 children in Scope
/* 10265*/        OPC_MoveChild1,
/* 10266*/        OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 10269*/        OPC_RecordChild0, // #1 = $a
/* 10270*/        OPC_MoveChild0,
/* 10271*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 10273*/        OPC_MoveParent,
/* 10274*/        OPC_RecordChild1, // #2 = $b
/* 10275*/        OPC_MoveChild1,
/* 10276*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 10278*/        OPC_MoveParent,
/* 10279*/        OPC_MoveParent,
/* 10280*/        OPC_CheckType, MVT::i32,
/* 10282*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 10284*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10287*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10290*/        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)
/* 10301*/      /*Scope*/ 37, /*->10339*/
/* 10302*/        OPC_RecordChild1, // #1 = $imm
/* 10303*/        OPC_MoveChild1,
/* 10304*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10307*/        OPC_CheckPredicate, 17, // Predicate_imm1_255_neg
/* 10309*/        OPC_MoveParent,
/* 10310*/        OPC_CheckType, MVT::i32,
/* 10312*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 10314*/        OPC_EmitConvertToTarget, 1,
/* 10316*/        OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 10319*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10322*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10325*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10328*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SUBri), 0,
                      MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm1_255_neg>><<X:imm_neg_XFORM>>:$imm) - Complexity = 8
                  // Dst: (t2SUBri:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm1_255_neg>>:$imm))
/* 10339*/      /*Scope*/ 36, /*->10376*/
/* 10340*/        OPC_MoveChild1,
/* 10341*/        OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 10344*/        OPC_RecordChild0, // #1 = $Rn
/* 10345*/        OPC_MoveChild0,
/* 10346*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 10348*/        OPC_MoveParent,
/* 10349*/        OPC_RecordChild1, // #2 = $Rm
/* 10350*/        OPC_MoveChild1,
/* 10351*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 10353*/        OPC_MoveParent,
/* 10354*/        OPC_MoveParent,
/* 10355*/        OPC_CheckType, MVT::i32,
/* 10357*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 10359*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10362*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10365*/        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)
/* 10376*/      0, /*End of Scope*/
/* 10377*/    /*Scope*/ 60, /*->10438*/
/* 10378*/      OPC_MoveChild0,
/* 10379*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 10382*/      OPC_RecordChild0, // #0 = $a
/* 10383*/      OPC_MoveChild0,
/* 10384*/      OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 10386*/      OPC_MoveParent,
/* 10387*/      OPC_RecordChild1, // #1 = $b
/* 10388*/      OPC_MoveChild1,
/* 10389*/      OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 10391*/      OPC_MoveParent,
/* 10392*/      OPC_MoveParent,
/* 10393*/      OPC_RecordChild1, // #2 = $acc
/* 10394*/      OPC_CheckType, MVT::i32,
/* 10396*/      OPC_Scope, 19, /*->10417*/ // 2 children in Scope
/* 10398*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 10400*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10403*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10406*/        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)
/* 10417*/      /*Scope*/ 19, /*->10437*/
/* 10418*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 10420*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10423*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10426*/        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)
/* 10437*/      0, /*End of Scope*/
/* 10438*/    /*Scope*/ 69|128,3/*453*/, /*->10893*/
/* 10440*/      OPC_RecordChild0, // #0 = $Rn
/* 10441*/      OPC_RecordChild1, // #1 = $imm
/* 10442*/      OPC_MoveChild1,
/* 10443*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10446*/      OPC_Scope, 29, /*->10477*/ // 11 children in Scope
/* 10448*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 10450*/        OPC_MoveParent,
/* 10451*/        OPC_CheckType, MVT::i32,
/* 10453*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 10455*/        OPC_EmitConvertToTarget, 1,
/* 10457*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10460*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10463*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10466*/        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)
/* 10477*/      /*Scope*/ 32, /*->10510*/
/* 10478*/        OPC_CheckPredicate, 18, // Predicate_mod_imm_neg
/* 10480*/        OPC_MoveParent,
/* 10481*/        OPC_CheckType, MVT::i32,
/* 10483*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 10485*/        OPC_EmitConvertToTarget, 1,
/* 10487*/        OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 10490*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10493*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10496*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10499*/        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))
/* 10510*/      /*Scope*/ 29, /*->10540*/
/* 10511*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/* 10513*/        OPC_MoveParent,
/* 10514*/        OPC_CheckType, MVT::i32,
/* 10516*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 10518*/        OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 10521*/        OPC_EmitConvertToTarget, 1,
/* 10523*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10526*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10529*/        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)
/* 10540*/      /*Scope*/ 29, /*->10570*/
/* 10541*/        OPC_CheckPredicate, 8, // Predicate_imm8_255
/* 10543*/        OPC_MoveParent,
/* 10544*/        OPC_CheckType, MVT::i32,
/* 10546*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 10548*/        OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 10551*/        OPC_EmitConvertToTarget, 1,
/* 10553*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10556*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10559*/        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)
/* 10570*/      /*Scope*/ 32, /*->10603*/
/* 10571*/        OPC_CheckPredicate, 19, // Predicate_imm0_7_neg
/* 10573*/        OPC_MoveParent,
/* 10574*/        OPC_CheckType, MVT::i32,
/* 10576*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 10578*/        OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 10581*/        OPC_EmitConvertToTarget, 1,
/* 10583*/        OPC_EmitNodeXForm, 3, 3, // imm_neg_XFORM
/* 10586*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10589*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10592*/        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))
/* 10603*/      /*Scope*/ 32, /*->10636*/
/* 10604*/        OPC_CheckPredicate, 20, // Predicate_imm8_255_neg
/* 10606*/        OPC_MoveParent,
/* 10607*/        OPC_CheckType, MVT::i32,
/* 10609*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 10611*/        OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 10614*/        OPC_EmitConvertToTarget, 1,
/* 10616*/        OPC_EmitNodeXForm, 3, 3, // imm_neg_XFORM
/* 10619*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10622*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10625*/        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))
/* 10636*/      /*Scope*/ 29, /*->10666*/
/* 10637*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 10639*/        OPC_MoveParent,
/* 10640*/        OPC_CheckType, MVT::i32,
/* 10642*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 10644*/        OPC_EmitConvertToTarget, 1,
/* 10646*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10649*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10652*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10655*/        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)
/* 10666*/      /*Scope*/ 25, /*->10692*/
/* 10667*/        OPC_CheckPredicate, 9, // Predicate_imm0_4095
/* 10669*/        OPC_MoveParent,
/* 10670*/        OPC_CheckType, MVT::i32,
/* 10672*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 10674*/        OPC_EmitConvertToTarget, 1,
/* 10676*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10679*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10682*/        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)
/* 10692*/      /*Scope*/ 32, /*->10725*/
/* 10693*/        OPC_CheckPredicate, 21, // Predicate_t2_so_imm_neg
/* 10695*/        OPC_MoveParent,
/* 10696*/        OPC_CheckType, MVT::i32,
/* 10698*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 10700*/        OPC_EmitConvertToTarget, 1,
/* 10702*/        OPC_EmitNodeXForm, 4, 2, // t2_so_imm_neg_XFORM
/* 10705*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10708*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10711*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10714*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SUBri), 0,
                      MVT::i32, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_neg>><<X:t2_so_imm_neg_XFORM>>:$imm) - Complexity = 7
                  // Dst: (t2SUBri:{ *:[i32] } rGPR:{ *:[i32] }:$src, (t2_so_imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_t2_so_imm_neg>>:$imm))
/* 10725*/      /*Scope*/ 28, /*->10754*/
/* 10726*/        OPC_CheckPredicate, 22, // Predicate_imm0_4095_neg
/* 10728*/        OPC_MoveParent,
/* 10729*/        OPC_CheckType, MVT::i32,
/* 10731*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 10733*/        OPC_EmitConvertToTarget, 1,
/* 10735*/        OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 10738*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10741*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10744*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SUBri12), 0,
                      MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                  // Src: (add:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_4095_neg>><<X:imm_neg_XFORM>>:$imm) - Complexity = 7
                  // Dst: (t2SUBri12:{ *:[i32] } rGPR:{ *:[i32] }:$src, (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm0_4095_neg>>:$imm))
/* 10754*/      /*Scope*/ 8|128,1/*136*/, /*->10892*/
/* 10756*/        OPC_CheckPredicate, 23, // Predicate_imm0_65535_neg
/* 10758*/        OPC_MoveParent,
/* 10759*/        OPC_CheckType, MVT::i32,
/* 10761*/        OPC_Scope, 42, /*->10805*/ // 3 children in Scope
/* 10763*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 10765*/          OPC_EmitConvertToTarget, 1,
/* 10767*/          OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 10770*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10773*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10776*/          OPC_EmitNode1, TARGET_VAL(ARM::MOVi16), 0,
                        MVT::i32, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 10785*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10788*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10791*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10794*/          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)))
/* 10805*/        /*Scope*/ 42, /*->10848*/
/* 10806*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 10808*/          OPC_EmitConvertToTarget, 1,
/* 10810*/          OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 10813*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10816*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10819*/          OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi16), 0,
                        MVT::i32, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 10828*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10831*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10834*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10837*/          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)))
/* 10848*/        /*Scope*/ 42, /*->10891*/
/* 10849*/          OPC_CheckPatternPredicate, 11, // (Subtarget->hasV8MBaselineOps())
/* 10851*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 10854*/          OPC_EmitConvertToTarget, 1,
/* 10856*/          OPC_EmitNodeXForm, 3, 3, // imm_neg_XFORM
/* 10859*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10862*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10865*/          OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi16), 0,
                        MVT::i32, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 10874*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10877*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10880*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tSUBrr), 0,
                        MVT::i32, 5/*#Ops*/, 2, 0, 7, 8, 9, 
                    // Src: (add:{ *:[i32] } tGPR:{ *:[i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_65535_neg>>:$imm) - Complexity = 7
                    // Dst: (tSUBrr:{ *:[i32] } tGPR:{ *:[i32] }:$src, (t2MOVi16:{ *:[i32] } (imm_neg_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm)))
/* 10891*/        0, /*End of Scope*/
/* 10892*/      0, /*End of Scope*/
/* 10893*/    /*Scope*/ 90, /*->10984*/
/* 10894*/      OPC_MoveChild0,
/* 10895*/      OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::MUL),// ->10955
/* 10899*/        OPC_RecordChild0, // #0 = $Rn
/* 10900*/        OPC_RecordChild1, // #1 = $Rm
/* 10901*/        OPC_MoveParent,
/* 10902*/        OPC_RecordChild1, // #2 = $Ra
/* 10903*/        OPC_CheckType, MVT::i32,
/* 10905*/        OPC_Scope, 23, /*->10930*/ // 2 children in Scope
/* 10907*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 10909*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10912*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10915*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10918*/          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)
/* 10930*/        /*Scope*/ 23, /*->10954*/
/* 10931*/          OPC_CheckPatternPredicate, 13, // (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops())
/* 10933*/          OPC_EmitInteger, MVT::i32, 14, 
/* 10936*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10939*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10942*/          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)
/* 10954*/        0, /*End of Scope*/
/* 10955*/      /*SwitchOpcode*/ 25, TARGET_VAL(ISD::MULHS),// ->10983
/* 10958*/        OPC_RecordChild0, // #0 = $Rn
/* 10959*/        OPC_RecordChild1, // #1 = $Rm
/* 10960*/        OPC_MoveParent,
/* 10961*/        OPC_RecordChild1, // #2 = $Ra
/* 10962*/        OPC_CheckType, MVT::i32,
/* 10964*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 10966*/        OPC_EmitInteger, MVT::i32, 14, 
/* 10969*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 10972*/        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)
/* 10983*/      0, // EndSwitchOpcode
/* 10984*/    /*Scope*/ 119, /*->11104*/
/* 10985*/      OPC_RecordChild0, // #0 = $Ra
/* 10986*/      OPC_MoveChild1,
/* 10987*/      OPC_SwitchOpcode /*3 cases */, 24, TARGET_VAL(ARMISD::SMULWB),// ->11015
/* 10991*/        OPC_RecordChild0, // #1 = $Rn
/* 10992*/        OPC_RecordChild1, // #2 = $Rm
/* 10993*/        OPC_MoveParent,
/* 10994*/        OPC_CheckType, MVT::i32,
/* 10996*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 10998*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11001*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11004*/        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)
/* 11015*/      /*SwitchOpcode*/ 24, TARGET_VAL(ARMISD::SMULWT),// ->11042
/* 11018*/        OPC_RecordChild0, // #1 = $Rn
/* 11019*/        OPC_RecordChild1, // #2 = $Rm
/* 11020*/        OPC_MoveParent,
/* 11021*/        OPC_CheckType, MVT::i32,
/* 11023*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 11025*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11028*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11031*/        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)
/* 11042*/      /*SwitchOpcode*/ 58, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->11103
/* 11045*/        OPC_RecordChild0, // #1 = $Rm
/* 11046*/        OPC_MoveChild1,
/* 11047*/        OPC_Scope, 26, /*->11075*/ // 2 children in Scope
/* 11049*/          OPC_CheckValueType, MVT::i8,
/* 11051*/          OPC_MoveParent,
/* 11052*/          OPC_MoveParent,
/* 11053*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 11055*/          OPC_EmitInteger, MVT::i32, 0, 
/* 11058*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11061*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11064*/          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] })
/* 11075*/        /*Scope*/ 26, /*->11102*/
/* 11076*/          OPC_CheckValueType, MVT::i16,
/* 11078*/          OPC_MoveParent,
/* 11079*/          OPC_MoveParent,
/* 11080*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 11082*/          OPC_EmitInteger, MVT::i32, 0, 
/* 11085*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11088*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11091*/          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] })
/* 11102*/        0, /*End of Scope*/
/* 11103*/      0, // EndSwitchOpcode
/* 11104*/    /*Scope*/ 59, /*->11164*/
/* 11105*/      OPC_MoveChild0,
/* 11106*/      OPC_SwitchOpcode /*2 cases */, 25, TARGET_VAL(ISD::MUL),// ->11135
/* 11110*/        OPC_RecordChild0, // #0 = $Rn
/* 11111*/        OPC_RecordChild1, // #1 = $Rm
/* 11112*/        OPC_MoveParent,
/* 11113*/        OPC_RecordChild1, // #2 = $Ra
/* 11114*/        OPC_CheckType, MVT::i32,
/* 11116*/        OPC_CheckPatternPredicate, 14, // (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 11118*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11121*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11124*/        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)
/* 11135*/      /*SwitchOpcode*/ 25, TARGET_VAL(ISD::MULHS),// ->11163
/* 11138*/        OPC_RecordChild0, // #0 = $Rm
/* 11139*/        OPC_RecordChild1, // #1 = $Rn
/* 11140*/        OPC_MoveParent,
/* 11141*/        OPC_RecordChild1, // #2 = $Ra
/* 11142*/        OPC_CheckType, MVT::i32,
/* 11144*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 11146*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11149*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11152*/        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)
/* 11163*/      0, // EndSwitchOpcode
/* 11164*/    /*Scope*/ 119, /*->11284*/
/* 11165*/      OPC_RecordChild0, // #0 = $Ra
/* 11166*/      OPC_MoveChild1,
/* 11167*/      OPC_SwitchOpcode /*3 cases */, 24, TARGET_VAL(ARMISD::SMULWB),// ->11195
/* 11171*/        OPC_RecordChild0, // #1 = $Rn
/* 11172*/        OPC_RecordChild1, // #2 = $Rm
/* 11173*/        OPC_MoveParent,
/* 11174*/        OPC_CheckType, MVT::i32,
/* 11176*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 11178*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11181*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11184*/        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)
/* 11195*/      /*SwitchOpcode*/ 24, TARGET_VAL(ARMISD::SMULWT),// ->11222
/* 11198*/        OPC_RecordChild0, // #1 = $Rn
/* 11199*/        OPC_RecordChild1, // #2 = $Rm
/* 11200*/        OPC_MoveParent,
/* 11201*/        OPC_CheckType, MVT::i32,
/* 11203*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 11205*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11208*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11211*/        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)
/* 11222*/      /*SwitchOpcode*/ 58, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->11283
/* 11225*/        OPC_RecordChild0, // #1 = $Rm
/* 11226*/        OPC_MoveChild1,
/* 11227*/        OPC_Scope, 26, /*->11255*/ // 2 children in Scope
/* 11229*/          OPC_CheckValueType, MVT::i8,
/* 11231*/          OPC_MoveParent,
/* 11232*/          OPC_MoveParent,
/* 11233*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 11235*/          OPC_EmitInteger, MVT::i32, 0, 
/* 11238*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11241*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11244*/          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] })
/* 11255*/        /*Scope*/ 26, /*->11282*/
/* 11256*/          OPC_CheckValueType, MVT::i16,
/* 11258*/          OPC_MoveParent,
/* 11259*/          OPC_MoveParent,
/* 11260*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 11262*/          OPC_EmitInteger, MVT::i32, 0, 
/* 11265*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11268*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11271*/          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] })
/* 11282*/        0, /*End of Scope*/
/* 11283*/      0, // EndSwitchOpcode
/* 11284*/    /*Scope*/ 82, /*->11367*/
/* 11285*/      OPC_MoveChild0,
/* 11286*/      OPC_CheckOpcode, TARGET_VAL(ISD::VECREDUCE_ADD),
/* 11289*/      OPC_RecordChild0, // #0 = $src1
/* 11290*/      OPC_Scope, 24, /*->11316*/ // 3 children in Scope
/* 11292*/        OPC_CheckChild0Type, MVT::v4i32,
/* 11294*/        OPC_MoveParent,
/* 11295*/        OPC_RecordChild1, // #1 = $src2
/* 11296*/        OPC_CheckType, MVT::i32,
/* 11298*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 11300*/        OPC_EmitInteger, MVT::i32, 0, 
/* 11303*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11306*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDVu32acc), 0,
                      MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (add:{ *:[i32] } (vecreduce_add:{ *:[i32] } MQPR:{ *:[v4i32] }:$src1), tGPR:{ *:[i32] }:$src2) - Complexity = 6
                  // Dst: (MVE_VADDVu32acc:{ *:[i32] } ?:{ *:[i32] }:$src2, ?:{ *:[v4i32] }:$src1)
/* 11316*/      /*Scope*/ 24, /*->11341*/
/* 11317*/        OPC_CheckChild0Type, MVT::v8i16,
/* 11319*/        OPC_MoveParent,
/* 11320*/        OPC_RecordChild1, // #1 = $src2
/* 11321*/        OPC_CheckType, MVT::i32,
/* 11323*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 11325*/        OPC_EmitInteger, MVT::i32, 0, 
/* 11328*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11331*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDVu16acc), 0,
                      MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (add:{ *:[i32] } (vecreduce_add:{ *:[i32] } MQPR:{ *:[v8i16] }:$src1), tGPR:{ *:[i32] }:$src2) - Complexity = 6
                  // Dst: (MVE_VADDVu16acc:{ *:[i32] } ?:{ *:[i32] }:$src2, ?:{ *:[v8i16] }:$src1)
/* 11341*/      /*Scope*/ 24, /*->11366*/
/* 11342*/        OPC_CheckChild0Type, MVT::v16i8,
/* 11344*/        OPC_MoveParent,
/* 11345*/        OPC_RecordChild1, // #1 = $src2
/* 11346*/        OPC_CheckType, MVT::i32,
/* 11348*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 11350*/        OPC_EmitInteger, MVT::i32, 0, 
/* 11353*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11356*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDVu8acc), 0,
                      MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (add:{ *:[i32] } (vecreduce_add:{ *:[i32] } MQPR:{ *:[v16i8] }:$src1), tGPR:{ *:[i32] }:$src2) - Complexity = 6
                  // Dst: (MVE_VADDVu8acc:{ *:[i32] } ?:{ *:[i32] }:$src2, ?:{ *:[v16i8] }:$src1)
/* 11366*/      0, /*End of Scope*/
/* 11367*/    /*Scope*/ 89, /*->11457*/
/* 11368*/      OPC_RecordChild0, // #0 = $Ra
/* 11369*/      OPC_MoveChild1,
/* 11370*/      OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::MUL),// ->11429
/* 11374*/        OPC_RecordChild0, // #1 = $Rn
/* 11375*/        OPC_RecordChild1, // #2 = $Rm
/* 11376*/        OPC_MoveParent,
/* 11377*/        OPC_CheckType, MVT::i32,
/* 11379*/        OPC_Scope, 23, /*->11404*/ // 2 children in Scope
/* 11381*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 11383*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11386*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11389*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11392*/          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)
/* 11404*/        /*Scope*/ 23, /*->11428*/
/* 11405*/          OPC_CheckPatternPredicate, 13, // (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops())
/* 11407*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11410*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11413*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11416*/          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)
/* 11428*/        0, /*End of Scope*/
/* 11429*/      /*SwitchOpcode*/ 24, TARGET_VAL(ISD::MULHS),// ->11456
/* 11432*/        OPC_RecordChild0, // #1 = $Rn
/* 11433*/        OPC_RecordChild1, // #2 = $Rm
/* 11434*/        OPC_MoveParent,
/* 11435*/        OPC_CheckType, MVT::i32,
/* 11437*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 11439*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11442*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11445*/        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)
/* 11456*/      0, // EndSwitchOpcode
/* 11457*/    /*Scope*/ 59, /*->11517*/
/* 11458*/      OPC_MoveChild0,
/* 11459*/      OPC_SwitchOpcode /*2 cases */, 25, TARGET_VAL(ARMISD::SMULWB),// ->11488
/* 11463*/        OPC_RecordChild0, // #0 = $Rn
/* 11464*/        OPC_RecordChild1, // #1 = $Rm
/* 11465*/        OPC_MoveParent,
/* 11466*/        OPC_RecordChild1, // #2 = $Ra
/* 11467*/        OPC_CheckType, MVT::i32,
/* 11469*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 11471*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11474*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11477*/        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)
/* 11488*/      /*SwitchOpcode*/ 25, TARGET_VAL(ARMISD::SMULWT),// ->11516
/* 11491*/        OPC_RecordChild0, // #0 = $Rn
/* 11492*/        OPC_RecordChild1, // #1 = $Rm
/* 11493*/        OPC_MoveParent,
/* 11494*/        OPC_RecordChild1, // #2 = $Ra
/* 11495*/        OPC_CheckType, MVT::i32,
/* 11497*/        OPC_CheckPatternPredicate, 9, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 11499*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11502*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11505*/        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)
/* 11516*/      0, // EndSwitchOpcode
/* 11517*/    /*Scope*/ 58, /*->11576*/
/* 11518*/      OPC_RecordChild0, // #0 = $Ra
/* 11519*/      OPC_MoveChild1,
/* 11520*/      OPC_SwitchOpcode /*2 cases */, 24, TARGET_VAL(ISD::MUL),// ->11548
/* 11524*/        OPC_RecordChild0, // #1 = $Rn
/* 11525*/        OPC_RecordChild1, // #2 = $Rm
/* 11526*/        OPC_MoveParent,
/* 11527*/        OPC_CheckType, MVT::i32,
/* 11529*/        OPC_CheckPatternPredicate, 14, // (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 11531*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11534*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11537*/        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)
/* 11548*/      /*SwitchOpcode*/ 24, TARGET_VAL(ISD::MULHS),// ->11575
/* 11551*/        OPC_RecordChild0, // #1 = $Rm
/* 11552*/        OPC_RecordChild1, // #2 = $Rn
/* 11553*/        OPC_MoveParent,
/* 11554*/        OPC_CheckType, MVT::i32,
/* 11556*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 11558*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11561*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11564*/        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)
/* 11575*/      0, // EndSwitchOpcode
/* 11576*/    /*Scope*/ 46|128,1/*174*/, /*->11752*/
/* 11578*/      OPC_MoveChild0,
/* 11579*/      OPC_SwitchOpcode /*3 cases */, 25, TARGET_VAL(ARMISD::SMULWB),// ->11608
/* 11583*/        OPC_RecordChild0, // #0 = $Rn
/* 11584*/        OPC_RecordChild1, // #1 = $Rm
/* 11585*/        OPC_MoveParent,
/* 11586*/        OPC_RecordChild1, // #2 = $Ra
/* 11587*/        OPC_CheckType, MVT::i32,
/* 11589*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 11591*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11594*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11597*/        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)
/* 11608*/      /*SwitchOpcode*/ 25, TARGET_VAL(ARMISD::SMULWT),// ->11636
/* 11611*/        OPC_RecordChild0, // #0 = $Rn
/* 11612*/        OPC_RecordChild1, // #1 = $Rm
/* 11613*/        OPC_MoveParent,
/* 11614*/        OPC_RecordChild1, // #2 = $Ra
/* 11615*/        OPC_CheckType, MVT::i32,
/* 11617*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 11619*/        OPC_EmitInteger, MVT::i32, 14, 
/* 11622*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11625*/        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)
/* 11636*/      /*SwitchOpcode*/ 112, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->11751
/* 11639*/        OPC_RecordChild0, // #0 = $Rm
/* 11640*/        OPC_MoveChild1,
/* 11641*/        OPC_Scope, 53, /*->11696*/ // 2 children in Scope
/* 11643*/          OPC_CheckValueType, MVT::i8,
/* 11645*/          OPC_MoveParent,
/* 11646*/          OPC_MoveParent,
/* 11647*/          OPC_RecordChild1, // #1 = $Rn
/* 11648*/          OPC_Scope, 22, /*->11672*/ // 2 children in Scope
/* 11650*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 11652*/            OPC_EmitInteger, MVT::i32, 0, 
/* 11655*/            OPC_EmitInteger, MVT::i32, 14, 
/* 11658*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11661*/            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] })
/* 11672*/          /*Scope*/ 22, /*->11695*/
/* 11673*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 11675*/            OPC_EmitInteger, MVT::i32, 0, 
/* 11678*/            OPC_EmitInteger, MVT::i32, 14, 
/* 11681*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11684*/            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] })
/* 11695*/          0, /*End of Scope*/
/* 11696*/        /*Scope*/ 53, /*->11750*/
/* 11697*/          OPC_CheckValueType, MVT::i16,
/* 11699*/          OPC_MoveParent,
/* 11700*/          OPC_MoveParent,
/* 11701*/          OPC_RecordChild1, // #1 = $Rn
/* 11702*/          OPC_Scope, 22, /*->11726*/ // 2 children in Scope
/* 11704*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 11706*/            OPC_EmitInteger, MVT::i32, 0, 
/* 11709*/            OPC_EmitInteger, MVT::i32, 14, 
/* 11712*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11715*/            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] })
/* 11726*/          /*Scope*/ 22, /*->11749*/
/* 11727*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 11729*/            OPC_EmitInteger, MVT::i32, 0, 
/* 11732*/            OPC_EmitInteger, MVT::i32, 14, 
/* 11735*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11738*/            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] })
/* 11749*/          0, /*End of Scope*/
/* 11750*/        0, /*End of Scope*/
/* 11751*/      0, // EndSwitchOpcode
/* 11752*/    /*Scope*/ 125|128,2/*381*/, /*->12135*/
/* 11754*/      OPC_RecordChild0, // #0 = $src2
/* 11755*/      OPC_Scope, 79, /*->11836*/ // 3 children in Scope
/* 11757*/        OPC_MoveChild1,
/* 11758*/        OPC_CheckOpcode, TARGET_VAL(ISD::VECREDUCE_ADD),
/* 11761*/        OPC_RecordChild0, // #1 = $src1
/* 11762*/        OPC_Scope, 23, /*->11787*/ // 3 children in Scope
/* 11764*/          OPC_CheckChild0Type, MVT::v4i32,
/* 11766*/          OPC_MoveParent,
/* 11767*/          OPC_CheckType, MVT::i32,
/* 11769*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 11771*/          OPC_EmitInteger, MVT::i32, 0, 
/* 11774*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11777*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDVu32acc), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[i32] } tGPR:{ *:[i32] }:$src2, (vecreduce_add:{ *:[i32] } MQPR:{ *:[v4i32] }:$src1)) - Complexity = 6
                    // Dst: (MVE_VADDVu32acc:{ *:[i32] } ?:{ *:[i32] }:$src2, ?:{ *:[v4i32] }:$src1)
/* 11787*/        /*Scope*/ 23, /*->11811*/
/* 11788*/          OPC_CheckChild0Type, MVT::v8i16,
/* 11790*/          OPC_MoveParent,
/* 11791*/          OPC_CheckType, MVT::i32,
/* 11793*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 11795*/          OPC_EmitInteger, MVT::i32, 0, 
/* 11798*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11801*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDVu16acc), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[i32] } tGPR:{ *:[i32] }:$src2, (vecreduce_add:{ *:[i32] } MQPR:{ *:[v8i16] }:$src1)) - Complexity = 6
                    // Dst: (MVE_VADDVu16acc:{ *:[i32] } ?:{ *:[i32] }:$src2, ?:{ *:[v8i16] }:$src1)
/* 11811*/        /*Scope*/ 23, /*->11835*/
/* 11812*/          OPC_CheckChild0Type, MVT::v16i8,
/* 11814*/          OPC_MoveParent,
/* 11815*/          OPC_CheckType, MVT::i32,
/* 11817*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 11819*/          OPC_EmitInteger, MVT::i32, 0, 
/* 11822*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11825*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDVu8acc), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (add:{ *:[i32] } tGPR:{ *:[i32] }:$src2, (vecreduce_add:{ *:[i32] } MQPR:{ *:[v16i8] }:$src1)) - Complexity = 6
                    // Dst: (MVE_VADDVu8acc:{ *:[i32] } ?:{ *:[i32] }:$src2, ?:{ *:[v16i8] }:$src1)
/* 11835*/        0, /*End of Scope*/
/* 11836*/      /*Scope*/ 89, /*->11926*/
/* 11837*/        OPC_RecordChild1, // #1 = $Rm
/* 11838*/        OPC_CheckType, MVT::i32,
/* 11840*/        OPC_Scope, 22, /*->11864*/ // 3 children in Scope
/* 11842*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 11844*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11847*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11850*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11853*/          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)
/* 11864*/        /*Scope*/ 22, /*->11887*/
/* 11865*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 11867*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 11870*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11873*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11876*/          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)
/* 11887*/        /*Scope*/ 37, /*->11925*/
/* 11888*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 11890*/          OPC_EmitInteger, MVT::i32, 14, 
/* 11893*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11896*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11899*/          OPC_Scope, 11, /*->11912*/ // 2 children in Scope
/* 11901*/            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)
/* 11912*/          /*Scope*/ 11, /*->11924*/
/* 11913*/            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)
/* 11924*/          0, /*End of Scope*/
/* 11925*/        0, /*End of Scope*/
/* 11926*/      /*Scope*/ 78|128,1/*206*/, /*->12134*/
/* 11928*/        OPC_MoveChild1,
/* 11929*/        OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 11932*/        OPC_MoveChild0,
/* 11933*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 11936*/        OPC_Scope, 97, /*->12035*/ // 2 children in Scope
/* 11938*/          OPC_CheckChild0Integer, 126|128,12/*1662*/, 
/* 11941*/          OPC_RecordChild1, // #1 = $Vn
/* 11942*/          OPC_Scope, 30, /*->11974*/ // 3 children in Scope
/* 11944*/            OPC_CheckChild1Type, MVT::v8i8,
/* 11946*/            OPC_RecordChild2, // #2 = $Vm
/* 11947*/            OPC_CheckChild2Type, MVT::v8i8,
/* 11949*/            OPC_CheckType, MVT::v8i8,
/* 11951*/            OPC_MoveParent,
/* 11952*/            OPC_MoveParent,
/* 11953*/            OPC_CheckType, MVT::v8i16,
/* 11955*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11957*/            OPC_EmitInteger, MVT::i32, 14, 
/* 11960*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11963*/            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] } 1662:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm))) - Complexity = 14
                      // Dst: (VABALsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 11974*/          /*Scope*/ 30, /*->12005*/
/* 11975*/            OPC_CheckChild1Type, MVT::v4i16,
/* 11977*/            OPC_RecordChild2, // #2 = $Vm
/* 11978*/            OPC_CheckChild2Type, MVT::v4i16,
/* 11980*/            OPC_CheckType, MVT::v4i16,
/* 11982*/            OPC_MoveParent,
/* 11983*/            OPC_MoveParent,
/* 11984*/            OPC_CheckType, MVT::v4i32,
/* 11986*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 11988*/            OPC_EmitInteger, MVT::i32, 14, 
/* 11991*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 11994*/            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] } 1662:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm))) - Complexity = 14
                      // Dst: (VABALsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 12005*/          /*Scope*/ 28, /*->12034*/
/* 12006*/            OPC_CheckChild1Type, MVT::v2i32,
/* 12008*/            OPC_RecordChild2, // #2 = $Vm
/* 12009*/            OPC_CheckChild2Type, MVT::v2i32,
/* 12011*/            OPC_MoveParent,
/* 12012*/            OPC_MoveParent,
/* 12013*/            OPC_CheckType, MVT::v2i64,
/* 12015*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12017*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12020*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12023*/            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] } 1662:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm))) - Complexity = 14
                      // Dst: (VABALsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 12034*/          0, /*End of Scope*/
/* 12035*/        /*Scope*/ 97, /*->12133*/
/* 12036*/          OPC_CheckChild0Integer, 127|128,12/*1663*/, 
/* 12039*/          OPC_RecordChild1, // #1 = $Vn
/* 12040*/          OPC_Scope, 30, /*->12072*/ // 3 children in Scope
/* 12042*/            OPC_CheckChild1Type, MVT::v8i8,
/* 12044*/            OPC_RecordChild2, // #2 = $Vm
/* 12045*/            OPC_CheckChild2Type, MVT::v8i8,
/* 12047*/            OPC_CheckType, MVT::v8i8,
/* 12049*/            OPC_MoveParent,
/* 12050*/            OPC_MoveParent,
/* 12051*/            OPC_CheckType, MVT::v8i16,
/* 12053*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12055*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12058*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12061*/            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] } 1663:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm))) - Complexity = 14
                      // Dst: (VABALuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 12072*/          /*Scope*/ 30, /*->12103*/
/* 12073*/            OPC_CheckChild1Type, MVT::v4i16,
/* 12075*/            OPC_RecordChild2, // #2 = $Vm
/* 12076*/            OPC_CheckChild2Type, MVT::v4i16,
/* 12078*/            OPC_CheckType, MVT::v4i16,
/* 12080*/            OPC_MoveParent,
/* 12081*/            OPC_MoveParent,
/* 12082*/            OPC_CheckType, MVT::v4i32,
/* 12084*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12086*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12089*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12092*/            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] } 1663:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm))) - Complexity = 14
                      // Dst: (VABALuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 12103*/          /*Scope*/ 28, /*->12132*/
/* 12104*/            OPC_CheckChild1Type, MVT::v2i32,
/* 12106*/            OPC_RecordChild2, // #2 = $Vm
/* 12107*/            OPC_CheckChild2Type, MVT::v2i32,
/* 12109*/            OPC_MoveParent,
/* 12110*/            OPC_MoveParent,
/* 12111*/            OPC_CheckType, MVT::v2i64,
/* 12113*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12115*/            OPC_EmitInteger, MVT::i32, 14, 
/* 12118*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12121*/            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] } 1663:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm))) - Complexity = 14
                      // Dst: (VABALuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 12132*/          0, /*End of Scope*/
/* 12133*/        0, /*End of Scope*/
/* 12134*/      0, /*End of Scope*/
/* 12135*/    /*Scope*/ 84|128,1/*212*/, /*->12349*/
/* 12137*/      OPC_MoveChild0,
/* 12138*/      OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 12141*/      OPC_MoveChild0,
/* 12142*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 12145*/      OPC_Scope, 100, /*->12247*/ // 2 children in Scope
/* 12147*/        OPC_CheckChild0Integer, 126|128,12/*1662*/, 
/* 12150*/        OPC_RecordChild1, // #0 = $Vn
/* 12151*/        OPC_Scope, 31, /*->12184*/ // 3 children in Scope
/* 12153*/          OPC_CheckChild1Type, MVT::v8i8,
/* 12155*/          OPC_RecordChild2, // #1 = $Vm
/* 12156*/          OPC_CheckChild2Type, MVT::v8i8,
/* 12158*/          OPC_CheckType, MVT::v8i8,
/* 12160*/          OPC_MoveParent,
/* 12161*/          OPC_MoveParent,
/* 12162*/          OPC_RecordChild1, // #2 = $src1
/* 12163*/          OPC_CheckType, MVT::v8i16,
/* 12165*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12167*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12170*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12173*/          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] } 1662:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)), QPR:{ *:[v8i16] }:$src1) - Complexity = 14
                    // Dst: (VABALsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 12184*/        /*Scope*/ 31, /*->12216*/
/* 12185*/          OPC_CheckChild1Type, MVT::v4i16,
/* 12187*/          OPC_RecordChild2, // #1 = $Vm
/* 12188*/          OPC_CheckChild2Type, MVT::v4i16,
/* 12190*/          OPC_CheckType, MVT::v4i16,
/* 12192*/          OPC_MoveParent,
/* 12193*/          OPC_MoveParent,
/* 12194*/          OPC_RecordChild1, // #2 = $src1
/* 12195*/          OPC_CheckType, MVT::v4i32,
/* 12197*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12199*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12202*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12205*/          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] } 1662:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)), QPR:{ *:[v4i32] }:$src1) - Complexity = 14
                    // Dst: (VABALsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 12216*/        /*Scope*/ 29, /*->12246*/
/* 12217*/          OPC_CheckChild1Type, MVT::v2i32,
/* 12219*/          OPC_RecordChild2, // #1 = $Vm
/* 12220*/          OPC_CheckChild2Type, MVT::v2i32,
/* 12222*/          OPC_MoveParent,
/* 12223*/          OPC_MoveParent,
/* 12224*/          OPC_RecordChild1, // #2 = $src1
/* 12225*/          OPC_CheckType, MVT::v2i64,
/* 12227*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12229*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12232*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12235*/          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] } 1662:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)), QPR:{ *:[v2i64] }:$src1) - Complexity = 14
                    // Dst: (VABALsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 12246*/        0, /*End of Scope*/
/* 12247*/      /*Scope*/ 100, /*->12348*/
/* 12248*/        OPC_CheckChild0Integer, 127|128,12/*1663*/, 
/* 12251*/        OPC_RecordChild1, // #0 = $Vn
/* 12252*/        OPC_Scope, 31, /*->12285*/ // 3 children in Scope
/* 12254*/          OPC_CheckChild1Type, MVT::v8i8,
/* 12256*/          OPC_RecordChild2, // #1 = $Vm
/* 12257*/          OPC_CheckChild2Type, MVT::v8i8,
/* 12259*/          OPC_CheckType, MVT::v8i8,
/* 12261*/          OPC_MoveParent,
/* 12262*/          OPC_MoveParent,
/* 12263*/          OPC_RecordChild1, // #2 = $src1
/* 12264*/          OPC_CheckType, MVT::v8i16,
/* 12266*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12268*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12271*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12274*/          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] } 1663:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)), QPR:{ *:[v8i16] }:$src1) - Complexity = 14
                    // Dst: (VABALuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 12285*/        /*Scope*/ 31, /*->12317*/
/* 12286*/          OPC_CheckChild1Type, MVT::v4i16,
/* 12288*/          OPC_RecordChild2, // #1 = $Vm
/* 12289*/          OPC_CheckChild2Type, MVT::v4i16,
/* 12291*/          OPC_CheckType, MVT::v4i16,
/* 12293*/          OPC_MoveParent,
/* 12294*/          OPC_MoveParent,
/* 12295*/          OPC_RecordChild1, // #2 = $src1
/* 12296*/          OPC_CheckType, MVT::v4i32,
/* 12298*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12300*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12303*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12306*/          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] } 1663:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)), QPR:{ *:[v4i32] }:$src1) - Complexity = 14
                    // Dst: (VABALuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 12317*/        /*Scope*/ 29, /*->12347*/
/* 12318*/          OPC_CheckChild1Type, MVT::v2i32,
/* 12320*/          OPC_RecordChild2, // #1 = $Vm
/* 12321*/          OPC_CheckChild2Type, MVT::v2i32,
/* 12323*/          OPC_MoveParent,
/* 12324*/          OPC_MoveParent,
/* 12325*/          OPC_RecordChild1, // #2 = $src1
/* 12326*/          OPC_CheckType, MVT::v2i64,
/* 12328*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12330*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12333*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12336*/          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] } 1663:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)), QPR:{ *:[v2i64] }:$src1) - Complexity = 14
                    // Dst: (VABALuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 12347*/        0, /*End of Scope*/
/* 12348*/      0, /*End of Scope*/
/* 12349*/    /*Scope*/ 107|128,2/*363*/, /*->12714*/
/* 12351*/      OPC_RecordChild0, // #0 = $src1
/* 12352*/      OPC_MoveChild1,
/* 12353*/      OPC_SwitchOpcode /*3 cases */, 47|128,1/*175*/, TARGET_VAL(ISD::MUL),// ->12533
/* 12358*/        OPC_Scope, 2|128,1/*130*/, /*->12491*/ // 2 children in Scope
/* 12361*/          OPC_RecordChild0, // #1 = $Vn
/* 12362*/          OPC_MoveChild1,
/* 12363*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12366*/          OPC_RecordChild0, // #2 = $Vm
/* 12367*/          OPC_Scope, 60, /*->12429*/ // 2 children in Scope
/* 12369*/            OPC_CheckChild0Type, MVT::v4i16,
/* 12371*/            OPC_RecordChild1, // #3 = $lane
/* 12372*/            OPC_MoveChild1,
/* 12373*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12376*/            OPC_MoveParent,
/* 12377*/            OPC_MoveParent,
/* 12378*/            OPC_MoveParent,
/* 12379*/            OPC_SwitchType /*2 cases */, 22, MVT::v4i16,// ->12404
/* 12382*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12384*/              OPC_EmitConvertToTarget, 3,
/* 12386*/              OPC_EmitInteger, MVT::i32, 14, 
/* 12389*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12392*/              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, (ARMvduplane:{ *:[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)
/* 12404*/            /*SwitchType*/ 22, MVT::v8i16,// ->12428
/* 12406*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12408*/              OPC_EmitConvertToTarget, 3,
/* 12410*/              OPC_EmitInteger, MVT::i32, 14, 
/* 12413*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12416*/              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, (ARMvduplane:{ *:[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)
/* 12428*/            0, // EndSwitchType
/* 12429*/          /*Scope*/ 60, /*->12490*/
/* 12430*/            OPC_CheckChild0Type, MVT::v2i32,
/* 12432*/            OPC_RecordChild1, // #3 = $lane
/* 12433*/            OPC_MoveChild1,
/* 12434*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12437*/            OPC_MoveParent,
/* 12438*/            OPC_MoveParent,
/* 12439*/            OPC_MoveParent,
/* 12440*/            OPC_SwitchType /*2 cases */, 22, MVT::v2i32,// ->12465
/* 12443*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12445*/              OPC_EmitConvertToTarget, 3,
/* 12447*/              OPC_EmitInteger, MVT::i32, 14, 
/* 12450*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12453*/              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, (ARMvduplane:{ *:[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)
/* 12465*/            /*SwitchType*/ 22, MVT::v4i32,// ->12489
/* 12467*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12469*/              OPC_EmitConvertToTarget, 3,
/* 12471*/              OPC_EmitInteger, MVT::i32, 14, 
/* 12474*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12477*/              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, (ARMvduplane:{ *:[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)
/* 12489*/            0, // EndSwitchType
/* 12490*/          0, /*End of Scope*/
/* 12491*/        /*Scope*/ 40, /*->12532*/
/* 12492*/          OPC_MoveChild0,
/* 12493*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12496*/          OPC_RecordChild0, // #1 = $Vm
/* 12497*/          OPC_CheckChild0Type, MVT::v4i16,
/* 12499*/          OPC_RecordChild1, // #2 = $lane
/* 12500*/          OPC_MoveChild1,
/* 12501*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12504*/          OPC_MoveParent,
/* 12505*/          OPC_MoveParent,
/* 12506*/          OPC_RecordChild1, // #3 = $Vn
/* 12507*/          OPC_MoveParent,
/* 12508*/          OPC_CheckType, MVT::v4i16,
/* 12510*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12512*/          OPC_EmitConvertToTarget, 2,
/* 12514*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12517*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12520*/          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] } (ARMvduplane:{ *:[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)
/* 12532*/        0, /*End of Scope*/
/* 12533*/      /*SwitchOpcode*/ 87, TARGET_VAL(ARMISD::VMULLs),// ->12623
/* 12536*/        OPC_RecordChild0, // #1 = $Vn
/* 12537*/        OPC_Scope, 41, /*->12580*/ // 2 children in Scope
/* 12539*/          OPC_CheckChild0Type, MVT::v4i16,
/* 12541*/          OPC_MoveChild1,
/* 12542*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12545*/          OPC_RecordChild0, // #2 = $Vm
/* 12546*/          OPC_CheckChild0Type, MVT::v4i16,
/* 12548*/          OPC_RecordChild1, // #3 = $lane
/* 12549*/          OPC_MoveChild1,
/* 12550*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12553*/          OPC_MoveParent,
/* 12554*/          OPC_MoveParent,
/* 12555*/          OPC_MoveParent,
/* 12556*/          OPC_CheckType, MVT::v4i32,
/* 12558*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12560*/          OPC_EmitConvertToTarget, 3,
/* 12562*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12565*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12568*/          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, (ARMvduplane:{ *:[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)
/* 12580*/        /*Scope*/ 41, /*->12622*/
/* 12581*/          OPC_CheckChild0Type, MVT::v2i32,
/* 12583*/          OPC_MoveChild1,
/* 12584*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12587*/          OPC_RecordChild0, // #2 = $Vm
/* 12588*/          OPC_CheckChild0Type, MVT::v2i32,
/* 12590*/          OPC_RecordChild1, // #3 = $lane
/* 12591*/          OPC_MoveChild1,
/* 12592*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12595*/          OPC_MoveParent,
/* 12596*/          OPC_MoveParent,
/* 12597*/          OPC_MoveParent,
/* 12598*/          OPC_CheckType, MVT::v2i64,
/* 12600*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12602*/          OPC_EmitConvertToTarget, 3,
/* 12604*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12607*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12610*/          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, (ARMvduplane:{ *:[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)
/* 12622*/        0, /*End of Scope*/
/* 12623*/      /*SwitchOpcode*/ 87, TARGET_VAL(ARMISD::VMULLu),// ->12713
/* 12626*/        OPC_RecordChild0, // #1 = $Vn
/* 12627*/        OPC_Scope, 41, /*->12670*/ // 2 children in Scope
/* 12629*/          OPC_CheckChild0Type, MVT::v4i16,
/* 12631*/          OPC_MoveChild1,
/* 12632*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12635*/          OPC_RecordChild0, // #2 = $Vm
/* 12636*/          OPC_CheckChild0Type, MVT::v4i16,
/* 12638*/          OPC_RecordChild1, // #3 = $lane
/* 12639*/          OPC_MoveChild1,
/* 12640*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12643*/          OPC_MoveParent,
/* 12644*/          OPC_MoveParent,
/* 12645*/          OPC_MoveParent,
/* 12646*/          OPC_CheckType, MVT::v4i32,
/* 12648*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12650*/          OPC_EmitConvertToTarget, 3,
/* 12652*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12655*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12658*/          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, (ARMvduplane:{ *:[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)
/* 12670*/        /*Scope*/ 41, /*->12712*/
/* 12671*/          OPC_CheckChild0Type, MVT::v2i32,
/* 12673*/          OPC_MoveChild1,
/* 12674*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12677*/          OPC_RecordChild0, // #2 = $Vm
/* 12678*/          OPC_CheckChild0Type, MVT::v2i32,
/* 12680*/          OPC_RecordChild1, // #3 = $lane
/* 12681*/          OPC_MoveChild1,
/* 12682*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12685*/          OPC_MoveParent,
/* 12686*/          OPC_MoveParent,
/* 12687*/          OPC_MoveParent,
/* 12688*/          OPC_CheckType, MVT::v2i64,
/* 12690*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12692*/          OPC_EmitConvertToTarget, 3,
/* 12694*/          OPC_EmitInteger, MVT::i32, 14, 
/* 12697*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12700*/          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, (ARMvduplane:{ *:[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)
/* 12712*/        0, /*End of Scope*/
/* 12713*/      0, // EndSwitchOpcode
/* 12714*/    /*Scope*/ 90, /*->12805*/
/* 12715*/      OPC_MoveChild0,
/* 12716*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 12719*/      OPC_Scope, 41, /*->12762*/ // 2 children in Scope
/* 12721*/        OPC_RecordChild0, // #0 = $Vn
/* 12722*/        OPC_MoveChild1,
/* 12723*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12726*/        OPC_RecordChild0, // #1 = $Vm
/* 12727*/        OPC_CheckChild0Type, MVT::v4i16,
/* 12729*/        OPC_RecordChild1, // #2 = $lane
/* 12730*/        OPC_MoveChild1,
/* 12731*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12734*/        OPC_MoveParent,
/* 12735*/        OPC_MoveParent,
/* 12736*/        OPC_MoveParent,
/* 12737*/        OPC_RecordChild1, // #3 = $src1
/* 12738*/        OPC_CheckType, MVT::v4i16,
/* 12740*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12742*/        OPC_EmitConvertToTarget, 2,
/* 12744*/        OPC_EmitInteger, MVT::i32, 14, 
/* 12747*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12750*/        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, (ARMvduplane:{ *:[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)
/* 12762*/      /*Scope*/ 41, /*->12804*/
/* 12763*/        OPC_MoveChild0,
/* 12764*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12767*/        OPC_RecordChild0, // #0 = $Vm
/* 12768*/        OPC_CheckChild0Type, MVT::v4i16,
/* 12770*/        OPC_RecordChild1, // #1 = $lane
/* 12771*/        OPC_MoveChild1,
/* 12772*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12775*/        OPC_MoveParent,
/* 12776*/        OPC_MoveParent,
/* 12777*/        OPC_RecordChild1, // #2 = $Vn
/* 12778*/        OPC_MoveParent,
/* 12779*/        OPC_RecordChild1, // #3 = $src1
/* 12780*/        OPC_CheckType, MVT::v4i16,
/* 12782*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12784*/        OPC_EmitConvertToTarget, 1,
/* 12786*/        OPC_EmitInteger, MVT::i32, 14, 
/* 12789*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12792*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i16), 0,
                      MVT::v4i16, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[v4i16] } (mul:{ *:[v4i16] } (ARMvduplane:{ *:[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)
/* 12804*/      0, /*End of Scope*/
/* 12805*/    /*Scope*/ 45, /*->12851*/
/* 12806*/      OPC_RecordChild0, // #0 = $src1
/* 12807*/      OPC_MoveChild1,
/* 12808*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 12811*/      OPC_MoveChild0,
/* 12812*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12815*/      OPC_RecordChild0, // #1 = $Vm
/* 12816*/      OPC_CheckChild0Type, MVT::v2i32,
/* 12818*/      OPC_RecordChild1, // #2 = $lane
/* 12819*/      OPC_MoveChild1,
/* 12820*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12823*/      OPC_MoveParent,
/* 12824*/      OPC_MoveParent,
/* 12825*/      OPC_RecordChild1, // #3 = $Vn
/* 12826*/      OPC_MoveParent,
/* 12827*/      OPC_CheckType, MVT::v2i32,
/* 12829*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12831*/      OPC_EmitConvertToTarget, 2,
/* 12833*/      OPC_EmitInteger, MVT::i32, 14, 
/* 12836*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12839*/      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] } (ARMvduplane:{ *:[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)
/* 12851*/    /*Scope*/ 90, /*->12942*/
/* 12852*/      OPC_MoveChild0,
/* 12853*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 12856*/      OPC_Scope, 41, /*->12899*/ // 2 children in Scope
/* 12858*/        OPC_RecordChild0, // #0 = $Vn
/* 12859*/        OPC_MoveChild1,
/* 12860*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12863*/        OPC_RecordChild0, // #1 = $Vm
/* 12864*/        OPC_CheckChild0Type, MVT::v2i32,
/* 12866*/        OPC_RecordChild1, // #2 = $lane
/* 12867*/        OPC_MoveChild1,
/* 12868*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12871*/        OPC_MoveParent,
/* 12872*/        OPC_MoveParent,
/* 12873*/        OPC_MoveParent,
/* 12874*/        OPC_RecordChild1, // #3 = $src1
/* 12875*/        OPC_CheckType, MVT::v2i32,
/* 12877*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12879*/        OPC_EmitConvertToTarget, 2,
/* 12881*/        OPC_EmitInteger, MVT::i32, 14, 
/* 12884*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12887*/        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, (ARMvduplane:{ *:[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)
/* 12899*/      /*Scope*/ 41, /*->12941*/
/* 12900*/        OPC_MoveChild0,
/* 12901*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12904*/        OPC_RecordChild0, // #0 = $Vm
/* 12905*/        OPC_CheckChild0Type, MVT::v2i32,
/* 12907*/        OPC_RecordChild1, // #1 = $lane
/* 12908*/        OPC_MoveChild1,
/* 12909*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12912*/        OPC_MoveParent,
/* 12913*/        OPC_MoveParent,
/* 12914*/        OPC_RecordChild1, // #2 = $Vn
/* 12915*/        OPC_MoveParent,
/* 12916*/        OPC_RecordChild1, // #3 = $src1
/* 12917*/        OPC_CheckType, MVT::v2i32,
/* 12919*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12921*/        OPC_EmitConvertToTarget, 1,
/* 12923*/        OPC_EmitInteger, MVT::i32, 14, 
/* 12926*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12929*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv2i32), 0,
                      MVT::v2i32, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[v2i32] } (mul:{ *:[v2i32] } (ARMvduplane:{ *:[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)
/* 12941*/      0, /*End of Scope*/
/* 12942*/    /*Scope*/ 45, /*->12988*/
/* 12943*/      OPC_RecordChild0, // #0 = $src1
/* 12944*/      OPC_MoveChild1,
/* 12945*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 12948*/      OPC_MoveChild0,
/* 12949*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 12952*/      OPC_RecordChild0, // #1 = $Vm
/* 12953*/      OPC_CheckChild0Type, MVT::v4i16,
/* 12955*/      OPC_RecordChild1, // #2 = $lane
/* 12956*/      OPC_MoveChild1,
/* 12957*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12960*/      OPC_MoveParent,
/* 12961*/      OPC_MoveParent,
/* 12962*/      OPC_RecordChild1, // #3 = $Vn
/* 12963*/      OPC_MoveParent,
/* 12964*/      OPC_CheckType, MVT::v8i16,
/* 12966*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 12968*/      OPC_EmitConvertToTarget, 2,
/* 12970*/      OPC_EmitInteger, MVT::i32, 14, 
/* 12973*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 12976*/      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] } (ARMvduplane:{ *:[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)
/* 12988*/    /*Scope*/ 90, /*->13079*/
/* 12989*/      OPC_MoveChild0,
/* 12990*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 12993*/      OPC_Scope, 41, /*->13036*/ // 2 children in Scope
/* 12995*/        OPC_RecordChild0, // #0 = $Vn
/* 12996*/        OPC_MoveChild1,
/* 12997*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13000*/        OPC_RecordChild0, // #1 = $Vm
/* 13001*/        OPC_CheckChild0Type, MVT::v4i16,
/* 13003*/        OPC_RecordChild1, // #2 = $lane
/* 13004*/        OPC_MoveChild1,
/* 13005*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13008*/        OPC_MoveParent,
/* 13009*/        OPC_MoveParent,
/* 13010*/        OPC_MoveParent,
/* 13011*/        OPC_RecordChild1, // #3 = $src1
/* 13012*/        OPC_CheckType, MVT::v8i16,
/* 13014*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13016*/        OPC_EmitConvertToTarget, 2,
/* 13018*/        OPC_EmitInteger, MVT::i32, 14, 
/* 13021*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13024*/        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, (ARMvduplane:{ *:[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)
/* 13036*/      /*Scope*/ 41, /*->13078*/
/* 13037*/        OPC_MoveChild0,
/* 13038*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13041*/        OPC_RecordChild0, // #0 = $Vm
/* 13042*/        OPC_CheckChild0Type, MVT::v4i16,
/* 13044*/        OPC_RecordChild1, // #1 = $lane
/* 13045*/        OPC_MoveChild1,
/* 13046*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13049*/        OPC_MoveParent,
/* 13050*/        OPC_MoveParent,
/* 13051*/        OPC_RecordChild1, // #2 = $Vn
/* 13052*/        OPC_MoveParent,
/* 13053*/        OPC_RecordChild1, // #3 = $src1
/* 13054*/        OPC_CheckType, MVT::v8i16,
/* 13056*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13058*/        OPC_EmitConvertToTarget, 1,
/* 13060*/        OPC_EmitInteger, MVT::i32, 14, 
/* 13063*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13066*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv8i16), 0,
                      MVT::v8i16, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (add:{ *:[v8i16] } (mul:{ *:[v8i16] } (ARMvduplane:{ *:[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)
/* 13078*/      0, /*End of Scope*/
/* 13079*/    /*Scope*/ 45, /*->13125*/
/* 13080*/      OPC_RecordChild0, // #0 = $src1
/* 13081*/      OPC_MoveChild1,
/* 13082*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 13085*/      OPC_MoveChild0,
/* 13086*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13089*/      OPC_RecordChild0, // #1 = $Vm
/* 13090*/      OPC_CheckChild0Type, MVT::v2i32,
/* 13092*/      OPC_RecordChild1, // #2 = $lane
/* 13093*/      OPC_MoveChild1,
/* 13094*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13097*/      OPC_MoveParent,
/* 13098*/      OPC_MoveParent,
/* 13099*/      OPC_RecordChild1, // #3 = $Vn
/* 13100*/      OPC_MoveParent,
/* 13101*/      OPC_CheckType, MVT::v4i32,
/* 13103*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13105*/      OPC_EmitConvertToTarget, 2,
/* 13107*/      OPC_EmitInteger, MVT::i32, 14, 
/* 13110*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13113*/      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] } (ARMvduplane:{ *:[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)
/* 13125*/    /*Scope*/ 20|128,2/*276*/, /*->13403*/
/* 13127*/      OPC_MoveChild0,
/* 13128*/      OPC_SwitchOpcode /*3 cases */, 86, TARGET_VAL(ISD::MUL),// ->13218
/* 13132*/        OPC_Scope, 41, /*->13175*/ // 2 children in Scope
/* 13134*/          OPC_RecordChild0, // #0 = $Vn
/* 13135*/          OPC_MoveChild1,
/* 13136*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13139*/          OPC_RecordChild0, // #1 = $Vm
/* 13140*/          OPC_CheckChild0Type, MVT::v2i32,
/* 13142*/          OPC_RecordChild1, // #2 = $lane
/* 13143*/          OPC_MoveChild1,
/* 13144*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13147*/          OPC_MoveParent,
/* 13148*/          OPC_MoveParent,
/* 13149*/          OPC_MoveParent,
/* 13150*/          OPC_RecordChild1, // #3 = $src1
/* 13151*/          OPC_CheckType, MVT::v4i32,
/* 13153*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13155*/          OPC_EmitConvertToTarget, 2,
/* 13157*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13160*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13163*/          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, (ARMvduplane:{ *:[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)
/* 13175*/        /*Scope*/ 41, /*->13217*/
/* 13176*/          OPC_MoveChild0,
/* 13177*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13180*/          OPC_RecordChild0, // #0 = $Vm
/* 13181*/          OPC_CheckChild0Type, MVT::v2i32,
/* 13183*/          OPC_RecordChild1, // #1 = $lane
/* 13184*/          OPC_MoveChild1,
/* 13185*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13188*/          OPC_MoveParent,
/* 13189*/          OPC_MoveParent,
/* 13190*/          OPC_RecordChild1, // #2 = $Vn
/* 13191*/          OPC_MoveParent,
/* 13192*/          OPC_RecordChild1, // #3 = $src1
/* 13193*/          OPC_CheckType, MVT::v4i32,
/* 13195*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13197*/          OPC_EmitConvertToTarget, 1,
/* 13199*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13202*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13205*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i32), 0,
                        MVT::v4i32, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                    // Src: (add:{ *:[v4i32] } (mul:{ *:[v4i32] } (ARMvduplane:{ *:[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)
/* 13217*/        0, /*End of Scope*/
/* 13218*/      /*SwitchOpcode*/ 89, TARGET_VAL(ARMISD::VMULLs),// ->13310
/* 13221*/        OPC_RecordChild0, // #0 = $Vn
/* 13222*/        OPC_Scope, 42, /*->13266*/ // 2 children in Scope
/* 13224*/          OPC_CheckChild0Type, MVT::v4i16,
/* 13226*/          OPC_MoveChild1,
/* 13227*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13230*/          OPC_RecordChild0, // #1 = $Vm
/* 13231*/          OPC_CheckChild0Type, MVT::v4i16,
/* 13233*/          OPC_RecordChild1, // #2 = $lane
/* 13234*/          OPC_MoveChild1,
/* 13235*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13238*/          OPC_MoveParent,
/* 13239*/          OPC_MoveParent,
/* 13240*/          OPC_MoveParent,
/* 13241*/          OPC_RecordChild1, // #3 = $src1
/* 13242*/          OPC_CheckType, MVT::v4i32,
/* 13244*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13246*/          OPC_EmitConvertToTarget, 2,
/* 13248*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13251*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13254*/          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, (ARMvduplane:{ *:[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)
/* 13266*/        /*Scope*/ 42, /*->13309*/
/* 13267*/          OPC_CheckChild0Type, MVT::v2i32,
/* 13269*/          OPC_MoveChild1,
/* 13270*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13273*/          OPC_RecordChild0, // #1 = $Vm
/* 13274*/          OPC_CheckChild0Type, MVT::v2i32,
/* 13276*/          OPC_RecordChild1, // #2 = $lane
/* 13277*/          OPC_MoveChild1,
/* 13278*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13281*/          OPC_MoveParent,
/* 13282*/          OPC_MoveParent,
/* 13283*/          OPC_MoveParent,
/* 13284*/          OPC_RecordChild1, // #3 = $src1
/* 13285*/          OPC_CheckType, MVT::v2i64,
/* 13287*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13289*/          OPC_EmitConvertToTarget, 2,
/* 13291*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13294*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13297*/          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, (ARMvduplane:{ *:[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)
/* 13309*/        0, /*End of Scope*/
/* 13310*/      /*SwitchOpcode*/ 89, TARGET_VAL(ARMISD::VMULLu),// ->13402
/* 13313*/        OPC_RecordChild0, // #0 = $Vn
/* 13314*/        OPC_Scope, 42, /*->13358*/ // 2 children in Scope
/* 13316*/          OPC_CheckChild0Type, MVT::v4i16,
/* 13318*/          OPC_MoveChild1,
/* 13319*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13322*/          OPC_RecordChild0, // #1 = $Vm
/* 13323*/          OPC_CheckChild0Type, MVT::v4i16,
/* 13325*/          OPC_RecordChild1, // #2 = $lane
/* 13326*/          OPC_MoveChild1,
/* 13327*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13330*/          OPC_MoveParent,
/* 13331*/          OPC_MoveParent,
/* 13332*/          OPC_MoveParent,
/* 13333*/          OPC_RecordChild1, // #3 = $src1
/* 13334*/          OPC_CheckType, MVT::v4i32,
/* 13336*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13338*/          OPC_EmitConvertToTarget, 2,
/* 13340*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13343*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13346*/          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, (ARMvduplane:{ *:[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)
/* 13358*/        /*Scope*/ 42, /*->13401*/
/* 13359*/          OPC_CheckChild0Type, MVT::v2i32,
/* 13361*/          OPC_MoveChild1,
/* 13362*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13365*/          OPC_RecordChild0, // #1 = $Vm
/* 13366*/          OPC_CheckChild0Type, MVT::v2i32,
/* 13368*/          OPC_RecordChild1, // #2 = $lane
/* 13369*/          OPC_MoveChild1,
/* 13370*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13373*/          OPC_MoveParent,
/* 13374*/          OPC_MoveParent,
/* 13375*/          OPC_MoveParent,
/* 13376*/          OPC_RecordChild1, // #3 = $src1
/* 13377*/          OPC_CheckType, MVT::v2i64,
/* 13379*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13381*/          OPC_EmitConvertToTarget, 2,
/* 13383*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13386*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13389*/          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, (ARMvduplane:{ *:[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)
/* 13401*/        0, /*End of Scope*/
/* 13402*/      0, // EndSwitchOpcode
/* 13403*/    /*Scope*/ 47|128,1/*175*/, /*->13580*/
/* 13405*/      OPC_RecordChild0, // #0 = $src1
/* 13406*/      OPC_MoveChild1,
/* 13407*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 13410*/      OPC_Scope, 110, /*->13522*/ // 2 children in Scope
/* 13412*/        OPC_RecordChild0, // #1 = $src2
/* 13413*/        OPC_MoveChild1,
/* 13414*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13417*/        OPC_RecordChild0, // #2 = $src3
/* 13418*/        OPC_Scope, 50, /*->13470*/ // 2 children in Scope
/* 13420*/          OPC_CheckChild0Type, MVT::v8i16,
/* 13422*/          OPC_RecordChild1, // #3 = $lane
/* 13423*/          OPC_MoveChild1,
/* 13424*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13427*/          OPC_MoveParent,
/* 13428*/          OPC_MoveParent,
/* 13429*/          OPC_MoveParent,
/* 13430*/          OPC_CheckType, MVT::v8i16,
/* 13432*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13434*/          OPC_EmitConvertToTarget, 3,
/* 13436*/          OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 13439*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 2, 5,  // Results = #6
/* 13447*/          OPC_EmitConvertToTarget, 3,
/* 13449*/          OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 13452*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13455*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13458*/          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, (ARMvduplane:{ *:[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))
/* 13470*/        /*Scope*/ 50, /*->13521*/
/* 13471*/          OPC_CheckChild0Type, MVT::v4i32,
/* 13473*/          OPC_RecordChild1, // #3 = $lane
/* 13474*/          OPC_MoveChild1,
/* 13475*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13478*/          OPC_MoveParent,
/* 13479*/          OPC_MoveParent,
/* 13480*/          OPC_MoveParent,
/* 13481*/          OPC_CheckType, MVT::v4i32,
/* 13483*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13485*/          OPC_EmitConvertToTarget, 3,
/* 13487*/          OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 13490*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i32, 2/*#Ops*/, 2, 5,  // Results = #6
/* 13498*/          OPC_EmitConvertToTarget, 3,
/* 13500*/          OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 13503*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13506*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13509*/          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, (ARMvduplane:{ *:[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))
/* 13521*/        0, /*End of Scope*/
/* 13522*/      /*Scope*/ 56, /*->13579*/
/* 13523*/        OPC_MoveChild0,
/* 13524*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13527*/        OPC_RecordChild0, // #1 = $src3
/* 13528*/        OPC_CheckChild0Type, MVT::v8i16,
/* 13530*/        OPC_RecordChild1, // #2 = $lane
/* 13531*/        OPC_MoveChild1,
/* 13532*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13535*/        OPC_MoveParent,
/* 13536*/        OPC_MoveParent,
/* 13537*/        OPC_RecordChild1, // #3 = $src2
/* 13538*/        OPC_MoveParent,
/* 13539*/        OPC_CheckType, MVT::v8i16,
/* 13541*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13543*/        OPC_EmitConvertToTarget, 2,
/* 13545*/        OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 13548*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 1, 5,  // Results = #6
/* 13556*/        OPC_EmitConvertToTarget, 2,
/* 13558*/        OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 13561*/        OPC_EmitInteger, MVT::i32, 14, 
/* 13564*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13567*/        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] } (ARMvduplane:{ *:[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))
/* 13579*/      0, /*End of Scope*/
/* 13580*/    /*Scope*/ 122, /*->13703*/
/* 13581*/      OPC_MoveChild0,
/* 13582*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 13585*/      OPC_Scope, 57, /*->13644*/ // 2 children in Scope
/* 13587*/        OPC_RecordChild0, // #0 = $src2
/* 13588*/        OPC_MoveChild1,
/* 13589*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13592*/        OPC_RecordChild0, // #1 = $src3
/* 13593*/        OPC_CheckChild0Type, MVT::v8i16,
/* 13595*/        OPC_RecordChild1, // #2 = $lane
/* 13596*/        OPC_MoveChild1,
/* 13597*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13600*/        OPC_MoveParent,
/* 13601*/        OPC_MoveParent,
/* 13602*/        OPC_MoveParent,
/* 13603*/        OPC_RecordChild1, // #3 = $src1
/* 13604*/        OPC_CheckType, MVT::v8i16,
/* 13606*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13608*/        OPC_EmitConvertToTarget, 2,
/* 13610*/        OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 13613*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 1, 5,  // Results = #6
/* 13621*/        OPC_EmitConvertToTarget, 2,
/* 13623*/        OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 13626*/        OPC_EmitInteger, MVT::i32, 14, 
/* 13629*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13632*/        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, (ARMvduplane:{ *:[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))
/* 13644*/      /*Scope*/ 57, /*->13702*/
/* 13645*/        OPC_MoveChild0,
/* 13646*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13649*/        OPC_RecordChild0, // #0 = $src3
/* 13650*/        OPC_CheckChild0Type, MVT::v8i16,
/* 13652*/        OPC_RecordChild1, // #1 = $lane
/* 13653*/        OPC_MoveChild1,
/* 13654*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13657*/        OPC_MoveParent,
/* 13658*/        OPC_MoveParent,
/* 13659*/        OPC_RecordChild1, // #2 = $src2
/* 13660*/        OPC_MoveParent,
/* 13661*/        OPC_RecordChild1, // #3 = $src1
/* 13662*/        OPC_CheckType, MVT::v8i16,
/* 13664*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13666*/        OPC_EmitConvertToTarget, 1,
/* 13668*/        OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 13671*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 5,  // Results = #6
/* 13679*/        OPC_EmitConvertToTarget, 1,
/* 13681*/        OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 13684*/        OPC_EmitInteger, MVT::i32, 14, 
/* 13687*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13690*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv8i16), 0,
                      MVT::v8i16, 6/*#Ops*/, 3, 2, 6, 8, 9, 10, 
                  // Src: (add:{ *:[v8i16] } (mul:{ *:[v8i16] } (ARMvduplane:{ *:[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))
/* 13702*/      0, /*End of Scope*/
/* 13703*/    /*Scope*/ 61, /*->13765*/
/* 13704*/      OPC_RecordChild0, // #0 = $src1
/* 13705*/      OPC_MoveChild1,
/* 13706*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 13709*/      OPC_MoveChild0,
/* 13710*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13713*/      OPC_RecordChild0, // #1 = $src3
/* 13714*/      OPC_CheckChild0Type, MVT::v4i32,
/* 13716*/      OPC_RecordChild1, // #2 = $lane
/* 13717*/      OPC_MoveChild1,
/* 13718*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13721*/      OPC_MoveParent,
/* 13722*/      OPC_MoveParent,
/* 13723*/      OPC_RecordChild1, // #3 = $src2
/* 13724*/      OPC_MoveParent,
/* 13725*/      OPC_CheckType, MVT::v4i32,
/* 13727*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13729*/      OPC_EmitConvertToTarget, 2,
/* 13731*/      OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 13734*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v2i32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 13742*/      OPC_EmitConvertToTarget, 2,
/* 13744*/      OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 13747*/      OPC_EmitInteger, MVT::i32, 14, 
/* 13750*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13753*/      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] } (ARMvduplane:{ *:[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))
/* 13765*/    /*Scope*/ 122, /*->13888*/
/* 13766*/      OPC_MoveChild0,
/* 13767*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 13770*/      OPC_Scope, 57, /*->13829*/ // 2 children in Scope
/* 13772*/        OPC_RecordChild0, // #0 = $src2
/* 13773*/        OPC_MoveChild1,
/* 13774*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13777*/        OPC_RecordChild0, // #1 = $src3
/* 13778*/        OPC_CheckChild0Type, MVT::v4i32,
/* 13780*/        OPC_RecordChild1, // #2 = $lane
/* 13781*/        OPC_MoveChild1,
/* 13782*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13785*/        OPC_MoveParent,
/* 13786*/        OPC_MoveParent,
/* 13787*/        OPC_MoveParent,
/* 13788*/        OPC_RecordChild1, // #3 = $src1
/* 13789*/        OPC_CheckType, MVT::v4i32,
/* 13791*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13793*/        OPC_EmitConvertToTarget, 2,
/* 13795*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 13798*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 13806*/        OPC_EmitConvertToTarget, 2,
/* 13808*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 13811*/        OPC_EmitInteger, MVT::i32, 14, 
/* 13814*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13817*/        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, (ARMvduplane:{ *:[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))
/* 13829*/      /*Scope*/ 57, /*->13887*/
/* 13830*/        OPC_MoveChild0,
/* 13831*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 13834*/        OPC_RecordChild0, // #0 = $src3
/* 13835*/        OPC_CheckChild0Type, MVT::v4i32,
/* 13837*/        OPC_RecordChild1, // #1 = $lane
/* 13838*/        OPC_MoveChild1,
/* 13839*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 13842*/        OPC_MoveParent,
/* 13843*/        OPC_MoveParent,
/* 13844*/        OPC_RecordChild1, // #2 = $src2
/* 13845*/        OPC_MoveParent,
/* 13846*/        OPC_RecordChild1, // #3 = $src1
/* 13847*/        OPC_CheckType, MVT::v4i32,
/* 13849*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13851*/        OPC_EmitConvertToTarget, 1,
/* 13853*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 13856*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 5,  // Results = #6
/* 13864*/        OPC_EmitConvertToTarget, 1,
/* 13866*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 13869*/        OPC_EmitInteger, MVT::i32, 14, 
/* 13872*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13875*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslv4i32), 0,
                      MVT::v4i32, 6/*#Ops*/, 3, 2, 6, 8, 9, 10, 
                  // Src: (add:{ *:[v4i32] } (mul:{ *:[v4i32] } (ARMvduplane:{ *:[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))
/* 13887*/      0, /*End of Scope*/
/* 13888*/    /*Scope*/ 103|128,2/*359*/, /*->14249*/
/* 13890*/      OPC_RecordChild0, // #0 = $src1
/* 13891*/      OPC_MoveChild1,
/* 13892*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 13895*/      OPC_Scope, 46|128,1/*174*/, /*->14072*/ // 2 children in Scope
/* 13898*/        OPC_CheckChild0Integer, 126|128,12/*1662*/, 
/* 13901*/        OPC_RecordChild1, // #1 = $Vn
/* 13902*/        OPC_Scope, 27, /*->13931*/ // 6 children in Scope
/* 13904*/          OPC_CheckChild1Type, MVT::v8i8,
/* 13906*/          OPC_RecordChild2, // #2 = $Vm
/* 13907*/          OPC_CheckChild2Type, MVT::v8i8,
/* 13909*/          OPC_MoveParent,
/* 13910*/          OPC_CheckType, MVT::v8i8,
/* 13912*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13914*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13917*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13920*/          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] } 1662:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) - Complexity = 11
                    // Dst: (VABAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 13931*/        /*Scope*/ 27, /*->13959*/
/* 13932*/          OPC_CheckChild1Type, MVT::v4i16,
/* 13934*/          OPC_RecordChild2, // #2 = $Vm
/* 13935*/          OPC_CheckChild2Type, MVT::v4i16,
/* 13937*/          OPC_MoveParent,
/* 13938*/          OPC_CheckType, MVT::v4i16,
/* 13940*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13942*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13945*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13948*/          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] } 1662:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 11
                    // Dst: (VABAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 13959*/        /*Scope*/ 27, /*->13987*/
/* 13960*/          OPC_CheckChild1Type, MVT::v2i32,
/* 13962*/          OPC_RecordChild2, // #2 = $Vm
/* 13963*/          OPC_CheckChild2Type, MVT::v2i32,
/* 13965*/          OPC_MoveParent,
/* 13966*/          OPC_CheckType, MVT::v2i32,
/* 13968*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13970*/          OPC_EmitInteger, MVT::i32, 14, 
/* 13973*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 13976*/          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] } 1662:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 11
                    // Dst: (VABAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 13987*/        /*Scope*/ 27, /*->14015*/
/* 13988*/          OPC_CheckChild1Type, MVT::v16i8,
/* 13990*/          OPC_RecordChild2, // #2 = $Vm
/* 13991*/          OPC_CheckChild2Type, MVT::v16i8,
/* 13993*/          OPC_MoveParent,
/* 13994*/          OPC_CheckType, MVT::v16i8,
/* 13996*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 13998*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14001*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14004*/          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] } 1662:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) - Complexity = 11
                    // Dst: (VABAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 14015*/        /*Scope*/ 27, /*->14043*/
/* 14016*/          OPC_CheckChild1Type, MVT::v8i16,
/* 14018*/          OPC_RecordChild2, // #2 = $Vm
/* 14019*/          OPC_CheckChild2Type, MVT::v8i16,
/* 14021*/          OPC_MoveParent,
/* 14022*/          OPC_CheckType, MVT::v8i16,
/* 14024*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14026*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14029*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14032*/          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] } 1662:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) - Complexity = 11
                    // Dst: (VABAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 14043*/        /*Scope*/ 27, /*->14071*/
/* 14044*/          OPC_CheckChild1Type, MVT::v4i32,
/* 14046*/          OPC_RecordChild2, // #2 = $Vm
/* 14047*/          OPC_CheckChild2Type, MVT::v4i32,
/* 14049*/          OPC_MoveParent,
/* 14050*/          OPC_CheckType, MVT::v4i32,
/* 14052*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14054*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14057*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14060*/          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] } 1662:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) - Complexity = 11
                    // Dst: (VABAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 14071*/        0, /*End of Scope*/
/* 14072*/      /*Scope*/ 46|128,1/*174*/, /*->14248*/
/* 14074*/        OPC_CheckChild0Integer, 127|128,12/*1663*/, 
/* 14077*/        OPC_RecordChild1, // #1 = $Vn
/* 14078*/        OPC_Scope, 27, /*->14107*/ // 6 children in Scope
/* 14080*/          OPC_CheckChild1Type, MVT::v8i8,
/* 14082*/          OPC_RecordChild2, // #2 = $Vm
/* 14083*/          OPC_CheckChild2Type, MVT::v8i8,
/* 14085*/          OPC_MoveParent,
/* 14086*/          OPC_CheckType, MVT::v8i8,
/* 14088*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14090*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14093*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14096*/          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] } 1663:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) - Complexity = 11
                    // Dst: (VABAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 14107*/        /*Scope*/ 27, /*->14135*/
/* 14108*/          OPC_CheckChild1Type, MVT::v4i16,
/* 14110*/          OPC_RecordChild2, // #2 = $Vm
/* 14111*/          OPC_CheckChild2Type, MVT::v4i16,
/* 14113*/          OPC_MoveParent,
/* 14114*/          OPC_CheckType, MVT::v4i16,
/* 14116*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14118*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14121*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14124*/          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] } 1663:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 11
                    // Dst: (VABAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 14135*/        /*Scope*/ 27, /*->14163*/
/* 14136*/          OPC_CheckChild1Type, MVT::v2i32,
/* 14138*/          OPC_RecordChild2, // #2 = $Vm
/* 14139*/          OPC_CheckChild2Type, MVT::v2i32,
/* 14141*/          OPC_MoveParent,
/* 14142*/          OPC_CheckType, MVT::v2i32,
/* 14144*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14146*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14149*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14152*/          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] } 1663:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 11
                    // Dst: (VABAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 14163*/        /*Scope*/ 27, /*->14191*/
/* 14164*/          OPC_CheckChild1Type, MVT::v16i8,
/* 14166*/          OPC_RecordChild2, // #2 = $Vm
/* 14167*/          OPC_CheckChild2Type, MVT::v16i8,
/* 14169*/          OPC_MoveParent,
/* 14170*/          OPC_CheckType, MVT::v16i8,
/* 14172*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14174*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14177*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14180*/          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] } 1663:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)) - Complexity = 11
                    // Dst: (VABAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 14191*/        /*Scope*/ 27, /*->14219*/
/* 14192*/          OPC_CheckChild1Type, MVT::v8i16,
/* 14194*/          OPC_RecordChild2, // #2 = $Vm
/* 14195*/          OPC_CheckChild2Type, MVT::v8i16,
/* 14197*/          OPC_MoveParent,
/* 14198*/          OPC_CheckType, MVT::v8i16,
/* 14200*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14202*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14205*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14208*/          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] } 1663:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) - Complexity = 11
                    // Dst: (VABAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 14219*/        /*Scope*/ 27, /*->14247*/
/* 14220*/          OPC_CheckChild1Type, MVT::v4i32,
/* 14222*/          OPC_RecordChild2, // #2 = $Vm
/* 14223*/          OPC_CheckChild2Type, MVT::v4i32,
/* 14225*/          OPC_MoveParent,
/* 14226*/          OPC_CheckType, MVT::v4i32,
/* 14228*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14230*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14233*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14236*/          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] } 1663:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) - Complexity = 11
                    // Dst: (VABAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 14247*/        0, /*End of Scope*/
/* 14248*/      0, /*End of Scope*/
/* 14249*/    /*Scope*/ 57|128,4/*569*/, /*->14820*/
/* 14251*/      OPC_MoveChild0,
/* 14252*/      OPC_SwitchOpcode /*3 cases */, 110|128,2/*366*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->14623
/* 14257*/        OPC_Scope, 52|128,1/*180*/, /*->14440*/ // 2 children in Scope
/* 14260*/          OPC_CheckChild0Integer, 126|128,12/*1662*/, 
/* 14263*/          OPC_RecordChild1, // #0 = $Vn
/* 14264*/          OPC_Scope, 28, /*->14294*/ // 6 children in Scope
/* 14266*/            OPC_CheckChild1Type, MVT::v8i8,
/* 14268*/            OPC_RecordChild2, // #1 = $Vm
/* 14269*/            OPC_CheckChild2Type, MVT::v8i8,
/* 14271*/            OPC_MoveParent,
/* 14272*/            OPC_RecordChild1, // #2 = $src1
/* 14273*/            OPC_CheckType, MVT::v8i8,
/* 14275*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14277*/            OPC_EmitInteger, MVT::i32, 14, 
/* 14280*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14283*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv8i8), 0,
                          MVT::v8i8, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v8i8] } (intrinsic_wo_chain:{ *:[v8i8] } 1662:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm), DPR:{ *:[v8i8] }:$src1) - Complexity = 11
                      // Dst: (VABAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 14294*/          /*Scope*/ 28, /*->14323*/
/* 14295*/            OPC_CheckChild1Type, MVT::v4i16,
/* 14297*/            OPC_RecordChild2, // #1 = $Vm
/* 14298*/            OPC_CheckChild2Type, MVT::v4i16,
/* 14300*/            OPC_MoveParent,
/* 14301*/            OPC_RecordChild1, // #2 = $src1
/* 14302*/            OPC_CheckType, MVT::v4i16,
/* 14304*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14306*/            OPC_EmitInteger, MVT::i32, 14, 
/* 14309*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14312*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv4i16), 0,
                          MVT::v4i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 1662:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) - Complexity = 11
                      // Dst: (VABAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 14323*/          /*Scope*/ 28, /*->14352*/
/* 14324*/            OPC_CheckChild1Type, MVT::v2i32,
/* 14326*/            OPC_RecordChild2, // #1 = $Vm
/* 14327*/            OPC_CheckChild2Type, MVT::v2i32,
/* 14329*/            OPC_MoveParent,
/* 14330*/            OPC_RecordChild1, // #2 = $src1
/* 14331*/            OPC_CheckType, MVT::v2i32,
/* 14333*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14335*/            OPC_EmitInteger, MVT::i32, 14, 
/* 14338*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14341*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv2i32), 0,
                          MVT::v2i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 1662:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) - Complexity = 11
                      // Dst: (VABAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 14352*/          /*Scope*/ 28, /*->14381*/
/* 14353*/            OPC_CheckChild1Type, MVT::v16i8,
/* 14355*/            OPC_RecordChild2, // #1 = $Vm
/* 14356*/            OPC_CheckChild2Type, MVT::v16i8,
/* 14358*/            OPC_MoveParent,
/* 14359*/            OPC_RecordChild1, // #2 = $src1
/* 14360*/            OPC_CheckType, MVT::v16i8,
/* 14362*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14364*/            OPC_EmitInteger, MVT::i32, 14, 
/* 14367*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14370*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv16i8), 0,
                          MVT::v16i8, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v16i8] } (intrinsic_wo_chain:{ *:[v16i8] } 1662:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm), QPR:{ *:[v16i8] }:$src1) - Complexity = 11
                      // Dst: (VABAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 14381*/          /*Scope*/ 28, /*->14410*/
/* 14382*/            OPC_CheckChild1Type, MVT::v8i16,
/* 14384*/            OPC_RecordChild2, // #1 = $Vm
/* 14385*/            OPC_CheckChild2Type, MVT::v8i16,
/* 14387*/            OPC_MoveParent,
/* 14388*/            OPC_RecordChild1, // #2 = $src1
/* 14389*/            OPC_CheckType, MVT::v8i16,
/* 14391*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14393*/            OPC_EmitInteger, MVT::i32, 14, 
/* 14396*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14399*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 1662:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) - Complexity = 11
                      // Dst: (VABAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 14410*/          /*Scope*/ 28, /*->14439*/
/* 14411*/            OPC_CheckChild1Type, MVT::v4i32,
/* 14413*/            OPC_RecordChild2, // #1 = $Vm
/* 14414*/            OPC_CheckChild2Type, MVT::v4i32,
/* 14416*/            OPC_MoveParent,
/* 14417*/            OPC_RecordChild1, // #2 = $src1
/* 14418*/            OPC_CheckType, MVT::v4i32,
/* 14420*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14422*/            OPC_EmitInteger, MVT::i32, 14, 
/* 14425*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14428*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAsv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 1662:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) - Complexity = 11
                      // Dst: (VABAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 14439*/          0, /*End of Scope*/
/* 14440*/        /*Scope*/ 52|128,1/*180*/, /*->14622*/
/* 14442*/          OPC_CheckChild0Integer, 127|128,12/*1663*/, 
/* 14445*/          OPC_RecordChild1, // #0 = $Vn
/* 14446*/          OPC_Scope, 28, /*->14476*/ // 6 children in Scope
/* 14448*/            OPC_CheckChild1Type, MVT::v8i8,
/* 14450*/            OPC_RecordChild2, // #1 = $Vm
/* 14451*/            OPC_CheckChild2Type, MVT::v8i8,
/* 14453*/            OPC_MoveParent,
/* 14454*/            OPC_RecordChild1, // #2 = $src1
/* 14455*/            OPC_CheckType, MVT::v8i8,
/* 14457*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14459*/            OPC_EmitInteger, MVT::i32, 14, 
/* 14462*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14465*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv8i8), 0,
                          MVT::v8i8, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v8i8] } (intrinsic_wo_chain:{ *:[v8i8] } 1663:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm), DPR:{ *:[v8i8] }:$src1) - Complexity = 11
                      // Dst: (VABAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 14476*/          /*Scope*/ 28, /*->14505*/
/* 14477*/            OPC_CheckChild1Type, MVT::v4i16,
/* 14479*/            OPC_RecordChild2, // #1 = $Vm
/* 14480*/            OPC_CheckChild2Type, MVT::v4i16,
/* 14482*/            OPC_MoveParent,
/* 14483*/            OPC_RecordChild1, // #2 = $src1
/* 14484*/            OPC_CheckType, MVT::v4i16,
/* 14486*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14488*/            OPC_EmitInteger, MVT::i32, 14, 
/* 14491*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14494*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv4i16), 0,
                          MVT::v4i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 1663:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) - Complexity = 11
                      // Dst: (VABAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 14505*/          /*Scope*/ 28, /*->14534*/
/* 14506*/            OPC_CheckChild1Type, MVT::v2i32,
/* 14508*/            OPC_RecordChild2, // #1 = $Vm
/* 14509*/            OPC_CheckChild2Type, MVT::v2i32,
/* 14511*/            OPC_MoveParent,
/* 14512*/            OPC_RecordChild1, // #2 = $src1
/* 14513*/            OPC_CheckType, MVT::v2i32,
/* 14515*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14517*/            OPC_EmitInteger, MVT::i32, 14, 
/* 14520*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14523*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv2i32), 0,
                          MVT::v2i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 1663:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) - Complexity = 11
                      // Dst: (VABAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 14534*/          /*Scope*/ 28, /*->14563*/
/* 14535*/            OPC_CheckChild1Type, MVT::v16i8,
/* 14537*/            OPC_RecordChild2, // #1 = $Vm
/* 14538*/            OPC_CheckChild2Type, MVT::v16i8,
/* 14540*/            OPC_MoveParent,
/* 14541*/            OPC_RecordChild1, // #2 = $src1
/* 14542*/            OPC_CheckType, MVT::v16i8,
/* 14544*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14546*/            OPC_EmitInteger, MVT::i32, 14, 
/* 14549*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14552*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv16i8), 0,
                          MVT::v16i8, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v16i8] } (intrinsic_wo_chain:{ *:[v16i8] } 1663:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm), QPR:{ *:[v16i8] }:$src1) - Complexity = 11
                      // Dst: (VABAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 14563*/          /*Scope*/ 28, /*->14592*/
/* 14564*/            OPC_CheckChild1Type, MVT::v8i16,
/* 14566*/            OPC_RecordChild2, // #1 = $Vm
/* 14567*/            OPC_CheckChild2Type, MVT::v8i16,
/* 14569*/            OPC_MoveParent,
/* 14570*/            OPC_RecordChild1, // #2 = $src1
/* 14571*/            OPC_CheckType, MVT::v8i16,
/* 14573*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14575*/            OPC_EmitInteger, MVT::i32, 14, 
/* 14578*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14581*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 1663:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) - Complexity = 11
                      // Dst: (VABAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 14592*/          /*Scope*/ 28, /*->14621*/
/* 14593*/            OPC_CheckChild1Type, MVT::v4i32,
/* 14595*/            OPC_RecordChild2, // #1 = $Vm
/* 14596*/            OPC_CheckChild2Type, MVT::v4i32,
/* 14598*/            OPC_MoveParent,
/* 14599*/            OPC_RecordChild1, // #2 = $src1
/* 14600*/            OPC_CheckType, MVT::v4i32,
/* 14602*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14604*/            OPC_EmitInteger, MVT::i32, 14, 
/* 14607*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14610*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VABAuv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (add:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 1663:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) - Complexity = 11
                      // Dst: (VABAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 14621*/          0, /*End of Scope*/
/* 14622*/        0, /*End of Scope*/
/* 14623*/      /*SwitchOpcode*/ 95, TARGET_VAL(ISD::SIGN_EXTEND),// ->14721
/* 14626*/        OPC_RecordChild0, // #0 = $Vn
/* 14627*/        OPC_Scope, 31, /*->14660*/ // 3 children in Scope
/* 14629*/          OPC_CheckChild0Type, MVT::v8i8,
/* 14631*/          OPC_MoveParent,
/* 14632*/          OPC_MoveChild1,
/* 14633*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 14636*/          OPC_RecordChild0, // #1 = $Vm
/* 14637*/          OPC_CheckChild0Type, MVT::v8i8,
/* 14639*/          OPC_MoveParent,
/* 14640*/          OPC_CheckType, MVT::v8i16,
/* 14642*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14644*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14647*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14650*/          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)
/* 14660*/        /*Scope*/ 31, /*->14692*/
/* 14661*/          OPC_CheckChild0Type, MVT::v4i16,
/* 14663*/          OPC_MoveParent,
/* 14664*/          OPC_MoveChild1,
/* 14665*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 14668*/          OPC_RecordChild0, // #1 = $Vm
/* 14669*/          OPC_CheckChild0Type, MVT::v4i16,
/* 14671*/          OPC_MoveParent,
/* 14672*/          OPC_CheckType, MVT::v4i32,
/* 14674*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14676*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14679*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14682*/          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)
/* 14692*/        /*Scope*/ 27, /*->14720*/
/* 14693*/          OPC_MoveParent,
/* 14694*/          OPC_MoveChild1,
/* 14695*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 14698*/          OPC_RecordChild0, // #1 = $Vm
/* 14699*/          OPC_MoveParent,
/* 14700*/          OPC_CheckType, MVT::v2i64,
/* 14702*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14704*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14707*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14710*/          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)
/* 14720*/        0, /*End of Scope*/
/* 14721*/      /*SwitchOpcode*/ 95, TARGET_VAL(ISD::ZERO_EXTEND),// ->14819
/* 14724*/        OPC_RecordChild0, // #0 = $Vn
/* 14725*/        OPC_Scope, 31, /*->14758*/ // 3 children in Scope
/* 14727*/          OPC_CheckChild0Type, MVT::v8i8,
/* 14729*/          OPC_MoveParent,
/* 14730*/          OPC_MoveChild1,
/* 14731*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 14734*/          OPC_RecordChild0, // #1 = $Vm
/* 14735*/          OPC_CheckChild0Type, MVT::v8i8,
/* 14737*/          OPC_MoveParent,
/* 14738*/          OPC_CheckType, MVT::v8i16,
/* 14740*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14742*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14745*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14748*/          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)
/* 14758*/        /*Scope*/ 31, /*->14790*/
/* 14759*/          OPC_CheckChild0Type, MVT::v4i16,
/* 14761*/          OPC_MoveParent,
/* 14762*/          OPC_MoveChild1,
/* 14763*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 14766*/          OPC_RecordChild0, // #1 = $Vm
/* 14767*/          OPC_CheckChild0Type, MVT::v4i16,
/* 14769*/          OPC_MoveParent,
/* 14770*/          OPC_CheckType, MVT::v4i32,
/* 14772*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14774*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14777*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14780*/          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)
/* 14790*/        /*Scope*/ 27, /*->14818*/
/* 14791*/          OPC_MoveParent,
/* 14792*/          OPC_MoveChild1,
/* 14793*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 14796*/          OPC_RecordChild0, // #1 = $Vm
/* 14797*/          OPC_MoveParent,
/* 14798*/          OPC_CheckType, MVT::v2i64,
/* 14800*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14802*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14805*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14808*/          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)
/* 14818*/        0, /*End of Scope*/
/* 14819*/      0, // EndSwitchOpcode
/* 14820*/    /*Scope*/ 106|128,6/*874*/, /*->15696*/
/* 14822*/      OPC_RecordChild0, // #0 = $src1
/* 14823*/      OPC_MoveChild1,
/* 14824*/      OPC_SwitchOpcode /*5 cases */, 66|128,1/*194*/, TARGET_VAL(ARMISD::VSHRsIMM),// ->15023
/* 14829*/        OPC_RecordChild0, // #1 = $Vm
/* 14830*/        OPC_RecordChild1, // #2 = $SIMM
/* 14831*/        OPC_MoveChild1,
/* 14832*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 14835*/        OPC_MoveParent,
/* 14836*/        OPC_MoveParent,
/* 14837*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->14861
/* 14840*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14842*/          OPC_EmitConvertToTarget, 2,
/* 14844*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14847*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14850*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (ARMvshrsImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14861*/        /*SwitchType*/ 21, MVT::v4i16,// ->14884
/* 14863*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14865*/          OPC_EmitConvertToTarget, 2,
/* 14867*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14870*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14873*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (ARMvshrsImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14884*/        /*SwitchType*/ 21, MVT::v2i32,// ->14907
/* 14886*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14888*/          OPC_EmitConvertToTarget, 2,
/* 14890*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14893*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14896*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (ARMvshrsImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14907*/        /*SwitchType*/ 21, MVT::v1i64,// ->14930
/* 14909*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14911*/          OPC_EmitConvertToTarget, 2,
/* 14913*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14916*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14919*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, (ARMvshrsImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14930*/        /*SwitchType*/ 21, MVT::v16i8,// ->14953
/* 14932*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14934*/          OPC_EmitConvertToTarget, 2,
/* 14936*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14939*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14942*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (ARMvshrsImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14953*/        /*SwitchType*/ 21, MVT::v8i16,// ->14976
/* 14955*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14957*/          OPC_EmitConvertToTarget, 2,
/* 14959*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14962*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14965*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (ARMvshrsImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14976*/        /*SwitchType*/ 21, MVT::v4i32,// ->14999
/* 14978*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 14980*/          OPC_EmitConvertToTarget, 2,
/* 14982*/          OPC_EmitInteger, MVT::i32, 14, 
/* 14985*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 14988*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (ARMvshrsImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 14999*/        /*SwitchType*/ 21, MVT::v2i64,// ->15022
/* 15001*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15003*/          OPC_EmitConvertToTarget, 2,
/* 15005*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15008*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15011*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (ARMvshrsImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15022*/        0, // EndSwitchType
/* 15023*/      /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(ARMISD::VSHRuIMM),// ->15221
/* 15027*/        OPC_RecordChild0, // #1 = $Vm
/* 15028*/        OPC_RecordChild1, // #2 = $SIMM
/* 15029*/        OPC_MoveChild1,
/* 15030*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 15033*/        OPC_MoveParent,
/* 15034*/        OPC_MoveParent,
/* 15035*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->15059
/* 15038*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15040*/          OPC_EmitConvertToTarget, 2,
/* 15042*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15045*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15048*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (ARMvshruImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15059*/        /*SwitchType*/ 21, MVT::v4i16,// ->15082
/* 15061*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15063*/          OPC_EmitConvertToTarget, 2,
/* 15065*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15068*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15071*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (ARMvshruImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15082*/        /*SwitchType*/ 21, MVT::v2i32,// ->15105
/* 15084*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15086*/          OPC_EmitConvertToTarget, 2,
/* 15088*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15091*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15094*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (ARMvshruImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15105*/        /*SwitchType*/ 21, MVT::v1i64,// ->15128
/* 15107*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15109*/          OPC_EmitConvertToTarget, 2,
/* 15111*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15114*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15117*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, (ARMvshruImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15128*/        /*SwitchType*/ 21, MVT::v16i8,// ->15151
/* 15130*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15132*/          OPC_EmitConvertToTarget, 2,
/* 15134*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15137*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15140*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (ARMvshruImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15151*/        /*SwitchType*/ 21, MVT::v8i16,// ->15174
/* 15153*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15155*/          OPC_EmitConvertToTarget, 2,
/* 15157*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15160*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15163*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (ARMvshruImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15174*/        /*SwitchType*/ 21, MVT::v4i32,// ->15197
/* 15176*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15178*/          OPC_EmitConvertToTarget, 2,
/* 15180*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15183*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15186*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (ARMvshruImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15197*/        /*SwitchType*/ 21, MVT::v2i64,// ->15220
/* 15199*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15201*/          OPC_EmitConvertToTarget, 2,
/* 15203*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15206*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15209*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (ARMvshruImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VSRAuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15220*/        0, // EndSwitchType
/* 15221*/      /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(ARMISD::VRSHRsIMM),// ->15419
/* 15225*/        OPC_RecordChild0, // #1 = $Vm
/* 15226*/        OPC_RecordChild1, // #2 = $SIMM
/* 15227*/        OPC_MoveChild1,
/* 15228*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 15231*/        OPC_MoveParent,
/* 15232*/        OPC_MoveParent,
/* 15233*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->15257
/* 15236*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15238*/          OPC_EmitConvertToTarget, 2,
/* 15240*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15243*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15246*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (NEONvrshrsImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15257*/        /*SwitchType*/ 21, MVT::v4i16,// ->15280
/* 15259*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15261*/          OPC_EmitConvertToTarget, 2,
/* 15263*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15266*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15269*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (NEONvrshrsImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15280*/        /*SwitchType*/ 21, MVT::v2i32,// ->15303
/* 15282*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15284*/          OPC_EmitConvertToTarget, 2,
/* 15286*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15289*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15292*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (NEONvrshrsImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15303*/        /*SwitchType*/ 21, MVT::v1i64,// ->15326
/* 15305*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15307*/          OPC_EmitConvertToTarget, 2,
/* 15309*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15312*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15315*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, (NEONvrshrsImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15326*/        /*SwitchType*/ 21, MVT::v16i8,// ->15349
/* 15328*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15330*/          OPC_EmitConvertToTarget, 2,
/* 15332*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15335*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15338*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (NEONvrshrsImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15349*/        /*SwitchType*/ 21, MVT::v8i16,// ->15372
/* 15351*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15353*/          OPC_EmitConvertToTarget, 2,
/* 15355*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15358*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15361*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (NEONvrshrsImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15372*/        /*SwitchType*/ 21, MVT::v4i32,// ->15395
/* 15374*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15376*/          OPC_EmitConvertToTarget, 2,
/* 15378*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15381*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15384*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvrshrsImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15395*/        /*SwitchType*/ 21, MVT::v2i64,// ->15418
/* 15397*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15399*/          OPC_EmitConvertToTarget, 2,
/* 15401*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15404*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15407*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (NEONvrshrsImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15418*/        0, // EndSwitchType
/* 15419*/      /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(ARMISD::VRSHRuIMM),// ->15617
/* 15423*/        OPC_RecordChild0, // #1 = $Vm
/* 15424*/        OPC_RecordChild1, // #2 = $SIMM
/* 15425*/        OPC_MoveChild1,
/* 15426*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 15429*/        OPC_MoveParent,
/* 15430*/        OPC_MoveParent,
/* 15431*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->15455
/* 15434*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15436*/          OPC_EmitConvertToTarget, 2,
/* 15438*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15441*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15444*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, (NEONvrshruImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15455*/        /*SwitchType*/ 21, MVT::v4i16,// ->15478
/* 15457*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15459*/          OPC_EmitConvertToTarget, 2,
/* 15461*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15464*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15467*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (NEONvrshruImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15478*/        /*SwitchType*/ 21, MVT::v2i32,// ->15501
/* 15480*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15482*/          OPC_EmitConvertToTarget, 2,
/* 15484*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15487*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15490*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (NEONvrshruImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15501*/        /*SwitchType*/ 21, MVT::v1i64,// ->15524
/* 15503*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15505*/          OPC_EmitConvertToTarget, 2,
/* 15507*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15510*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15513*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, (NEONvrshruImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15524*/        /*SwitchType*/ 21, MVT::v16i8,// ->15547
/* 15526*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15528*/          OPC_EmitConvertToTarget, 2,
/* 15530*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15533*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15536*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, (NEONvrshruImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15547*/        /*SwitchType*/ 21, MVT::v8i16,// ->15570
/* 15549*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15551*/          OPC_EmitConvertToTarget, 2,
/* 15553*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15556*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15559*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (NEONvrshruImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15570*/        /*SwitchType*/ 21, MVT::v4i32,// ->15593
/* 15572*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15574*/          OPC_EmitConvertToTarget, 2,
/* 15576*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15579*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15582*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (NEONvrshruImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15593*/        /*SwitchType*/ 21, MVT::v2i64,// ->15616
/* 15595*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15597*/          OPC_EmitConvertToTarget, 2,
/* 15599*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15602*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15605*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (NEONvrshruImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)) - Complexity = 9
                    // Dst: (VRSRAuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15616*/        0, // EndSwitchType
/* 15617*/      /*SwitchOpcode*/ 75, TARGET_VAL(ISD::MUL),// ->15695
/* 15620*/        OPC_RecordChild0, // #1 = $src2
/* 15621*/        OPC_MoveChild1,
/* 15622*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 15625*/        OPC_RecordChild0, // #2 = $x
/* 15626*/        OPC_CheckChild0Type, MVT::i32,
/* 15628*/        OPC_MoveParent,
/* 15629*/        OPC_MoveParent,
/* 15630*/        OPC_SwitchType /*3 cases */, 19, MVT::v4i32,// ->15652
/* 15633*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 15635*/          OPC_EmitInteger, MVT::i32, 0, 
/* 15638*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15641*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLA_qr_u32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src2, (ARMvdup:{ *:[v4i32] } rGPR:{ *:[i32] }:$x))) - Complexity = 9
                    // Dst: (MVE_VMLA_qr_u32:{ *:[v4i32] } ?:{ *:[v4i32] }:$src1, ?:{ *:[v4i32] }:$src2, ?:{ *:[i32] }:$x)
/* 15652*/        /*SwitchType*/ 19, MVT::v8i16,// ->15673
/* 15654*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 15656*/          OPC_EmitInteger, MVT::i32, 0, 
/* 15659*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15662*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLA_qr_u16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src2, (ARMvdup:{ *:[v8i16] } rGPR:{ *:[i32] }:$x))) - Complexity = 9
                    // Dst: (MVE_VMLA_qr_u16:{ *:[v8i16] } ?:{ *:[v8i16] }:$src1, ?:{ *:[v8i16] }:$src2, ?:{ *:[i32] }:$x)
/* 15673*/        /*SwitchType*/ 19, MVT::v16i8,// ->15694
/* 15675*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 15677*/          OPC_EmitInteger, MVT::i32, 0, 
/* 15680*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15683*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLA_qr_u8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src1, (mul:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src2, (ARMvdup:{ *:[v16i8] } rGPR:{ *:[i32] }:$x))) - Complexity = 9
                    // Dst: (MVE_VMLA_qr_u8:{ *:[v16i8] } ?:{ *:[v16i8] }:$src1, ?:{ *:[v16i8] }:$src2, ?:{ *:[i32] }:$x)
/* 15694*/        0, // EndSwitchType
/* 15695*/      0, // EndSwitchOpcode
/* 15696*/    /*Scope*/ 31|128,6/*799*/, /*->16497*/
/* 15698*/      OPC_MoveChild0,
/* 15699*/      OPC_SwitchOpcode /*4 cases */, 67|128,1/*195*/, TARGET_VAL(ARMISD::VSHRsIMM),// ->15899
/* 15704*/        OPC_RecordChild0, // #0 = $Vm
/* 15705*/        OPC_RecordChild1, // #1 = $SIMM
/* 15706*/        OPC_MoveChild1,
/* 15707*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 15710*/        OPC_MoveParent,
/* 15711*/        OPC_MoveParent,
/* 15712*/        OPC_RecordChild1, // #2 = $src1
/* 15713*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->15737
/* 15716*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15718*/          OPC_EmitConvertToTarget, 1,
/* 15720*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15723*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15726*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } (ARMvshrsImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v8i8] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15737*/        /*SwitchType*/ 21, MVT::v4i16,// ->15760
/* 15739*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15741*/          OPC_EmitConvertToTarget, 1,
/* 15743*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15746*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15749*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } (ARMvshrsImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v4i16] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15760*/        /*SwitchType*/ 21, MVT::v2i32,// ->15783
/* 15762*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15764*/          OPC_EmitConvertToTarget, 1,
/* 15766*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15769*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15772*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } (ARMvshrsImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v2i32] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15783*/        /*SwitchType*/ 21, MVT::v1i64,// ->15806
/* 15785*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15787*/          OPC_EmitConvertToTarget, 1,
/* 15789*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15792*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15795*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } (ARMvshrsImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v1i64] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15806*/        /*SwitchType*/ 21, MVT::v16i8,// ->15829
/* 15808*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15810*/          OPC_EmitConvertToTarget, 1,
/* 15812*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15815*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15818*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } (ARMvshrsImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v16i8] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15829*/        /*SwitchType*/ 21, MVT::v8i16,// ->15852
/* 15831*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15833*/          OPC_EmitConvertToTarget, 1,
/* 15835*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15838*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15841*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } (ARMvshrsImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v8i16] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15852*/        /*SwitchType*/ 21, MVT::v4i32,// ->15875
/* 15854*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15856*/          OPC_EmitConvertToTarget, 1,
/* 15858*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15861*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15864*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } (ARMvshrsImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v4i32] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15875*/        /*SwitchType*/ 21, MVT::v2i64,// ->15898
/* 15877*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15879*/          OPC_EmitConvertToTarget, 1,
/* 15881*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15884*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15887*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAsv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } (ARMvshrsImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v2i64] }:$src1) - Complexity = 9
                    // Dst: (VSRAsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15898*/        0, // EndSwitchType
/* 15899*/      /*SwitchOpcode*/ 67|128,1/*195*/, TARGET_VAL(ARMISD::VSHRuIMM),// ->16098
/* 15903*/        OPC_RecordChild0, // #0 = $Vm
/* 15904*/        OPC_RecordChild1, // #1 = $SIMM
/* 15905*/        OPC_MoveChild1,
/* 15906*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 15909*/        OPC_MoveParent,
/* 15910*/        OPC_MoveParent,
/* 15911*/        OPC_RecordChild1, // #2 = $src1
/* 15912*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->15936
/* 15915*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15917*/          OPC_EmitConvertToTarget, 1,
/* 15919*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15922*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15925*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } (ARMvshruImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v8i8] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15936*/        /*SwitchType*/ 21, MVT::v4i16,// ->15959
/* 15938*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15940*/          OPC_EmitConvertToTarget, 1,
/* 15942*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15945*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15948*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } (ARMvshruImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v4i16] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15959*/        /*SwitchType*/ 21, MVT::v2i32,// ->15982
/* 15961*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15963*/          OPC_EmitConvertToTarget, 1,
/* 15965*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15968*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15971*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } (ARMvshruImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v2i32] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 15982*/        /*SwitchType*/ 21, MVT::v1i64,// ->16005
/* 15984*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 15986*/          OPC_EmitConvertToTarget, 1,
/* 15988*/          OPC_EmitInteger, MVT::i32, 14, 
/* 15991*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 15994*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } (ARMvshruImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v1i64] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16005*/        /*SwitchType*/ 21, MVT::v16i8,// ->16028
/* 16007*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16009*/          OPC_EmitConvertToTarget, 1,
/* 16011*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16014*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16017*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } (ARMvshruImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v16i8] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16028*/        /*SwitchType*/ 21, MVT::v8i16,// ->16051
/* 16030*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16032*/          OPC_EmitConvertToTarget, 1,
/* 16034*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16037*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16040*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } (ARMvshruImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v8i16] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16051*/        /*SwitchType*/ 21, MVT::v4i32,// ->16074
/* 16053*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16055*/          OPC_EmitConvertToTarget, 1,
/* 16057*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16060*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16063*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } (ARMvshruImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v4i32] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16074*/        /*SwitchType*/ 21, MVT::v2i64,// ->16097
/* 16076*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16078*/          OPC_EmitConvertToTarget, 1,
/* 16080*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16083*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16086*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRAuv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } (ARMvshruImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v2i64] }:$src1) - Complexity = 9
                    // Dst: (VSRAuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16097*/        0, // EndSwitchType
/* 16098*/      /*SwitchOpcode*/ 67|128,1/*195*/, TARGET_VAL(ARMISD::VRSHRsIMM),// ->16297
/* 16102*/        OPC_RecordChild0, // #0 = $Vm
/* 16103*/        OPC_RecordChild1, // #1 = $SIMM
/* 16104*/        OPC_MoveChild1,
/* 16105*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16108*/        OPC_MoveParent,
/* 16109*/        OPC_MoveParent,
/* 16110*/        OPC_RecordChild1, // #2 = $src1
/* 16111*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->16135
/* 16114*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16116*/          OPC_EmitConvertToTarget, 1,
/* 16118*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16121*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16124*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } (NEONvrshrsImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v8i8] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16135*/        /*SwitchType*/ 21, MVT::v4i16,// ->16158
/* 16137*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16139*/          OPC_EmitConvertToTarget, 1,
/* 16141*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16144*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16147*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } (NEONvrshrsImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v4i16] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16158*/        /*SwitchType*/ 21, MVT::v2i32,// ->16181
/* 16160*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16162*/          OPC_EmitConvertToTarget, 1,
/* 16164*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16167*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16170*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } (NEONvrshrsImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v2i32] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16181*/        /*SwitchType*/ 21, MVT::v1i64,// ->16204
/* 16183*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16185*/          OPC_EmitConvertToTarget, 1,
/* 16187*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16190*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16193*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } (NEONvrshrsImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v1i64] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16204*/        /*SwitchType*/ 21, MVT::v16i8,// ->16227
/* 16206*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16208*/          OPC_EmitConvertToTarget, 1,
/* 16210*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16213*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16216*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } (NEONvrshrsImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v16i8] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16227*/        /*SwitchType*/ 21, MVT::v8i16,// ->16250
/* 16229*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16231*/          OPC_EmitConvertToTarget, 1,
/* 16233*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16236*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16239*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } (NEONvrshrsImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v8i16] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16250*/        /*SwitchType*/ 21, MVT::v4i32,// ->16273
/* 16252*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16254*/          OPC_EmitConvertToTarget, 1,
/* 16256*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16259*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16262*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } (NEONvrshrsImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v4i32] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16273*/        /*SwitchType*/ 21, MVT::v2i64,// ->16296
/* 16275*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16277*/          OPC_EmitConvertToTarget, 1,
/* 16279*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16282*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16285*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAsv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } (NEONvrshrsImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v2i64] }:$src1) - Complexity = 9
                    // Dst: (VRSRAsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16296*/        0, // EndSwitchType
/* 16297*/      /*SwitchOpcode*/ 67|128,1/*195*/, TARGET_VAL(ARMISD::VRSHRuIMM),// ->16496
/* 16301*/        OPC_RecordChild0, // #0 = $Vm
/* 16302*/        OPC_RecordChild1, // #1 = $SIMM
/* 16303*/        OPC_MoveChild1,
/* 16304*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 16307*/        OPC_MoveParent,
/* 16308*/        OPC_MoveParent,
/* 16309*/        OPC_RecordChild1, // #2 = $src1
/* 16310*/        OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->16334
/* 16313*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16315*/          OPC_EmitConvertToTarget, 1,
/* 16317*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16320*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16323*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv8i8), 0,
                        MVT::v8i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i8] } (NEONvrshruImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v8i8] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16334*/        /*SwitchType*/ 21, MVT::v4i16,// ->16357
/* 16336*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16338*/          OPC_EmitConvertToTarget, 1,
/* 16340*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16343*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16346*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i16] } (NEONvrshruImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v4i16] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16357*/        /*SwitchType*/ 21, MVT::v2i32,// ->16380
/* 16359*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16361*/          OPC_EmitConvertToTarget, 1,
/* 16363*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16366*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16369*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i32] } (NEONvrshruImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v2i32] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16380*/        /*SwitchType*/ 21, MVT::v1i64,// ->16403
/* 16382*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16384*/          OPC_EmitConvertToTarget, 1,
/* 16386*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16389*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16392*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv1i64), 0,
                        MVT::v1i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v1i64] } (NEONvrshruImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), DPR:{ *:[v1i64] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16403*/        /*SwitchType*/ 21, MVT::v16i8,// ->16426
/* 16405*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16407*/          OPC_EmitConvertToTarget, 1,
/* 16409*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16412*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16415*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv16i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v16i8] } (NEONvrshruImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v16i8] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16426*/        /*SwitchType*/ 21, MVT::v8i16,// ->16449
/* 16428*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16430*/          OPC_EmitConvertToTarget, 1,
/* 16432*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16435*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16438*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v8i16] } (NEONvrshruImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v8i16] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16449*/        /*SwitchType*/ 21, MVT::v4i32,// ->16472
/* 16451*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16453*/          OPC_EmitConvertToTarget, 1,
/* 16455*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16458*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16461*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v4i32] } (NEONvrshruImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v4i32] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16472*/        /*SwitchType*/ 21, MVT::v2i64,// ->16495
/* 16474*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16476*/          OPC_EmitConvertToTarget, 1,
/* 16478*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16481*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16484*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSRAuv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (add:{ *:[v2i64] } (NEONvrshruImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM), QPR:{ *:[v2i64] }:$src1) - Complexity = 9
                    // Dst: (VRSRAuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 16495*/        0, // EndSwitchType
/* 16496*/      0, // EndSwitchOpcode
/* 16497*/    /*Scope*/ 36, /*->16534*/
/* 16498*/      OPC_RecordChild0, // #0 = $src1
/* 16499*/      OPC_MoveChild1,
/* 16500*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 16503*/      OPC_MoveChild0,
/* 16504*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 16507*/      OPC_RecordChild0, // #1 = $x
/* 16508*/      OPC_CheckChild0Type, MVT::i32,
/* 16510*/      OPC_MoveParent,
/* 16511*/      OPC_RecordChild1, // #2 = $src2
/* 16512*/      OPC_MoveParent,
/* 16513*/      OPC_CheckType, MVT::v4i32,
/* 16515*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 16517*/      OPC_EmitInteger, MVT::i32, 0, 
/* 16520*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16523*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLA_qr_u32), 0,
                    MVT::v4i32, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                // Src: (add:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src1, (mul:{ *:[v4i32] } (ARMvdup:{ *:[v4i32] } rGPR:{ *:[i32] }:$x), MQPR:{ *:[v4i32] }:$src2)) - Complexity = 9
                // Dst: (MVE_VMLA_qr_u32:{ *:[v4i32] } ?:{ *:[v4i32] }:$src1, ?:{ *:[v4i32] }:$src2, ?:{ *:[i32] }:$x)
/* 16534*/    /*Scope*/ 72, /*->16607*/
/* 16535*/      OPC_MoveChild0,
/* 16536*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 16539*/      OPC_Scope, 32, /*->16573*/ // 2 children in Scope
/* 16541*/        OPC_RecordChild0, // #0 = $src2
/* 16542*/        OPC_MoveChild1,
/* 16543*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 16546*/        OPC_RecordChild0, // #1 = $x
/* 16547*/        OPC_CheckChild0Type, MVT::i32,
/* 16549*/        OPC_MoveParent,
/* 16550*/        OPC_MoveParent,
/* 16551*/        OPC_RecordChild1, // #2 = $src1
/* 16552*/        OPC_CheckType, MVT::v4i32,
/* 16554*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 16556*/        OPC_EmitInteger, MVT::i32, 0, 
/* 16559*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16562*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLA_qr_u32), 0,
                      MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (add:{ *:[v4i32] } (mul:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src2, (ARMvdup:{ *:[v4i32] } rGPR:{ *:[i32] }:$x)), MQPR:{ *:[v4i32] }:$src1) - Complexity = 9
                  // Dst: (MVE_VMLA_qr_u32:{ *:[v4i32] } ?:{ *:[v4i32] }:$src1, ?:{ *:[v4i32] }:$src2, ?:{ *:[i32] }:$x)
/* 16573*/      /*Scope*/ 32, /*->16606*/
/* 16574*/        OPC_MoveChild0,
/* 16575*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 16578*/        OPC_RecordChild0, // #0 = $x
/* 16579*/        OPC_CheckChild0Type, MVT::i32,
/* 16581*/        OPC_MoveParent,
/* 16582*/        OPC_RecordChild1, // #1 = $src2
/* 16583*/        OPC_MoveParent,
/* 16584*/        OPC_RecordChild1, // #2 = $src1
/* 16585*/        OPC_CheckType, MVT::v4i32,
/* 16587*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 16589*/        OPC_EmitInteger, MVT::i32, 0, 
/* 16592*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16595*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLA_qr_u32), 0,
                      MVT::v4i32, 5/*#Ops*/, 2, 1, 0, 3, 4, 
                  // Src: (add:{ *:[v4i32] } (mul:{ *:[v4i32] } (ARMvdup:{ *:[v4i32] } rGPR:{ *:[i32] }:$x), MQPR:{ *:[v4i32] }:$src2), MQPR:{ *:[v4i32] }:$src1) - Complexity = 9
                  // Dst: (MVE_VMLA_qr_u32:{ *:[v4i32] } ?:{ *:[v4i32] }:$src1, ?:{ *:[v4i32] }:$src2, ?:{ *:[i32] }:$x)
/* 16606*/      0, /*End of Scope*/
/* 16607*/    /*Scope*/ 36, /*->16644*/
/* 16608*/      OPC_RecordChild0, // #0 = $src1
/* 16609*/      OPC_MoveChild1,
/* 16610*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 16613*/      OPC_MoveChild0,
/* 16614*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 16617*/      OPC_RecordChild0, // #1 = $x
/* 16618*/      OPC_CheckChild0Type, MVT::i32,
/* 16620*/      OPC_MoveParent,
/* 16621*/      OPC_RecordChild1, // #2 = $src2
/* 16622*/      OPC_MoveParent,
/* 16623*/      OPC_CheckType, MVT::v8i16,
/* 16625*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 16627*/      OPC_EmitInteger, MVT::i32, 0, 
/* 16630*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16633*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLA_qr_u16), 0,
                    MVT::v8i16, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                // Src: (add:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src1, (mul:{ *:[v8i16] } (ARMvdup:{ *:[v8i16] } rGPR:{ *:[i32] }:$x), MQPR:{ *:[v8i16] }:$src2)) - Complexity = 9
                // Dst: (MVE_VMLA_qr_u16:{ *:[v8i16] } ?:{ *:[v8i16] }:$src1, ?:{ *:[v8i16] }:$src2, ?:{ *:[i32] }:$x)
/* 16644*/    /*Scope*/ 72, /*->16717*/
/* 16645*/      OPC_MoveChild0,
/* 16646*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 16649*/      OPC_Scope, 32, /*->16683*/ // 2 children in Scope
/* 16651*/        OPC_RecordChild0, // #0 = $src2
/* 16652*/        OPC_MoveChild1,
/* 16653*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 16656*/        OPC_RecordChild0, // #1 = $x
/* 16657*/        OPC_CheckChild0Type, MVT::i32,
/* 16659*/        OPC_MoveParent,
/* 16660*/        OPC_MoveParent,
/* 16661*/        OPC_RecordChild1, // #2 = $src1
/* 16662*/        OPC_CheckType, MVT::v8i16,
/* 16664*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 16666*/        OPC_EmitInteger, MVT::i32, 0, 
/* 16669*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16672*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLA_qr_u16), 0,
                      MVT::v8i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (add:{ *:[v8i16] } (mul:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src2, (ARMvdup:{ *:[v8i16] } rGPR:{ *:[i32] }:$x)), MQPR:{ *:[v8i16] }:$src1) - Complexity = 9
                  // Dst: (MVE_VMLA_qr_u16:{ *:[v8i16] } ?:{ *:[v8i16] }:$src1, ?:{ *:[v8i16] }:$src2, ?:{ *:[i32] }:$x)
/* 16683*/      /*Scope*/ 32, /*->16716*/
/* 16684*/        OPC_MoveChild0,
/* 16685*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 16688*/        OPC_RecordChild0, // #0 = $x
/* 16689*/        OPC_CheckChild0Type, MVT::i32,
/* 16691*/        OPC_MoveParent,
/* 16692*/        OPC_RecordChild1, // #1 = $src2
/* 16693*/        OPC_MoveParent,
/* 16694*/        OPC_RecordChild1, // #2 = $src1
/* 16695*/        OPC_CheckType, MVT::v8i16,
/* 16697*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 16699*/        OPC_EmitInteger, MVT::i32, 0, 
/* 16702*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16705*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLA_qr_u16), 0,
                      MVT::v8i16, 5/*#Ops*/, 2, 1, 0, 3, 4, 
                  // Src: (add:{ *:[v8i16] } (mul:{ *:[v8i16] } (ARMvdup:{ *:[v8i16] } rGPR:{ *:[i32] }:$x), MQPR:{ *:[v8i16] }:$src2), MQPR:{ *:[v8i16] }:$src1) - Complexity = 9
                  // Dst: (MVE_VMLA_qr_u16:{ *:[v8i16] } ?:{ *:[v8i16] }:$src1, ?:{ *:[v8i16] }:$src2, ?:{ *:[i32] }:$x)
/* 16716*/      0, /*End of Scope*/
/* 16717*/    /*Scope*/ 36, /*->16754*/
/* 16718*/      OPC_RecordChild0, // #0 = $src1
/* 16719*/      OPC_MoveChild1,
/* 16720*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 16723*/      OPC_MoveChild0,
/* 16724*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 16727*/      OPC_RecordChild0, // #1 = $x
/* 16728*/      OPC_CheckChild0Type, MVT::i32,
/* 16730*/      OPC_MoveParent,
/* 16731*/      OPC_RecordChild1, // #2 = $src2
/* 16732*/      OPC_MoveParent,
/* 16733*/      OPC_CheckType, MVT::v16i8,
/* 16735*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 16737*/      OPC_EmitInteger, MVT::i32, 0, 
/* 16740*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16743*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLA_qr_u8), 0,
                    MVT::v16i8, 5/*#Ops*/, 0, 2, 1, 3, 4, 
                // Src: (add:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src1, (mul:{ *:[v16i8] } (ARMvdup:{ *:[v16i8] } rGPR:{ *:[i32] }:$x), MQPR:{ *:[v16i8] }:$src2)) - Complexity = 9
                // Dst: (MVE_VMLA_qr_u8:{ *:[v16i8] } ?:{ *:[v16i8] }:$src1, ?:{ *:[v16i8] }:$src2, ?:{ *:[i32] }:$x)
/* 16754*/    /*Scope*/ 72, /*->16827*/
/* 16755*/      OPC_MoveChild0,
/* 16756*/      OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 16759*/      OPC_Scope, 32, /*->16793*/ // 2 children in Scope
/* 16761*/        OPC_RecordChild0, // #0 = $src2
/* 16762*/        OPC_MoveChild1,
/* 16763*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 16766*/        OPC_RecordChild0, // #1 = $x
/* 16767*/        OPC_CheckChild0Type, MVT::i32,
/* 16769*/        OPC_MoveParent,
/* 16770*/        OPC_MoveParent,
/* 16771*/        OPC_RecordChild1, // #2 = $src1
/* 16772*/        OPC_CheckType, MVT::v16i8,
/* 16774*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 16776*/        OPC_EmitInteger, MVT::i32, 0, 
/* 16779*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16782*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLA_qr_u8), 0,
                      MVT::v16i8, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (add:{ *:[v16i8] } (mul:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src2, (ARMvdup:{ *:[v16i8] } rGPR:{ *:[i32] }:$x)), MQPR:{ *:[v16i8] }:$src1) - Complexity = 9
                  // Dst: (MVE_VMLA_qr_u8:{ *:[v16i8] } ?:{ *:[v16i8] }:$src1, ?:{ *:[v16i8] }:$src2, ?:{ *:[i32] }:$x)
/* 16793*/      /*Scope*/ 32, /*->16826*/
/* 16794*/        OPC_MoveChild0,
/* 16795*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 16798*/        OPC_RecordChild0, // #0 = $x
/* 16799*/        OPC_CheckChild0Type, MVT::i32,
/* 16801*/        OPC_MoveParent,
/* 16802*/        OPC_RecordChild1, // #1 = $src2
/* 16803*/        OPC_MoveParent,
/* 16804*/        OPC_RecordChild1, // #2 = $src1
/* 16805*/        OPC_CheckType, MVT::v16i8,
/* 16807*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 16809*/        OPC_EmitInteger, MVT::i32, 0, 
/* 16812*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16815*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLA_qr_u8), 0,
                      MVT::v16i8, 5/*#Ops*/, 2, 1, 0, 3, 4, 
                  // Src: (add:{ *:[v16i8] } (mul:{ *:[v16i8] } (ARMvdup:{ *:[v16i8] } rGPR:{ *:[i32] }:$x), MQPR:{ *:[v16i8] }:$src2), MQPR:{ *:[v16i8] }:$src1) - Complexity = 9
                  // Dst: (MVE_VMLA_qr_u8:{ *:[v16i8] } ?:{ *:[v16i8] }:$src1, ?:{ *:[v16i8] }:$src2, ?:{ *:[i32] }:$x)
/* 16826*/      0, /*End of Scope*/
/* 16827*/    /*Scope*/ 37|128,4/*549*/, /*->17378*/
/* 16829*/      OPC_RecordChild0, // #0 = $Vn
/* 16830*/      OPC_MoveChild1,
/* 16831*/      OPC_SwitchOpcode /*6 cases */, 73, TARGET_VAL(ISD::SIGN_EXTEND),// ->16908
/* 16835*/        OPC_RecordChild0, // #1 = $Vm
/* 16836*/        OPC_Scope, 23, /*->16861*/ // 3 children in Scope
/* 16838*/          OPC_CheckChild0Type, MVT::v8i8,
/* 16840*/          OPC_MoveParent,
/* 16841*/          OPC_CheckType, MVT::v8i16,
/* 16843*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16845*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16848*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16851*/          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)
/* 16861*/        /*Scope*/ 23, /*->16885*/
/* 16862*/          OPC_CheckChild0Type, MVT::v4i16,
/* 16864*/          OPC_MoveParent,
/* 16865*/          OPC_CheckType, MVT::v4i32,
/* 16867*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16869*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16872*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16875*/          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)
/* 16885*/        /*Scope*/ 21, /*->16907*/
/* 16886*/          OPC_MoveParent,
/* 16887*/          OPC_CheckType, MVT::v2i64,
/* 16889*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16891*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16894*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16897*/          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)
/* 16907*/        0, /*End of Scope*/
/* 16908*/      /*SwitchOpcode*/ 73, TARGET_VAL(ISD::ZERO_EXTEND),// ->16984
/* 16911*/        OPC_RecordChild0, // #1 = $Vm
/* 16912*/        OPC_Scope, 23, /*->16937*/ // 3 children in Scope
/* 16914*/          OPC_CheckChild0Type, MVT::v8i8,
/* 16916*/          OPC_MoveParent,
/* 16917*/          OPC_CheckType, MVT::v8i16,
/* 16919*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16921*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16924*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16927*/          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)
/* 16937*/        /*Scope*/ 23, /*->16961*/
/* 16938*/          OPC_CheckChild0Type, MVT::v4i16,
/* 16940*/          OPC_MoveParent,
/* 16941*/          OPC_CheckType, MVT::v4i32,
/* 16943*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16945*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16948*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16951*/          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)
/* 16961*/        /*Scope*/ 21, /*->16983*/
/* 16962*/          OPC_MoveParent,
/* 16963*/          OPC_CheckType, MVT::v2i64,
/* 16965*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16967*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16970*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 16973*/          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)
/* 16983*/        0, /*End of Scope*/
/* 16984*/      /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(ISD::MUL),// ->17119
/* 16988*/        OPC_RecordChild0, // #1 = $Vn
/* 16989*/        OPC_RecordChild1, // #2 = $Vm
/* 16990*/        OPC_MoveParent,
/* 16991*/        OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->17013
/* 16994*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 16996*/          OPC_EmitInteger, MVT::i32, 14, 
/* 16999*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17002*/          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)
/* 17013*/        /*SwitchType*/ 19, MVT::v4i16,// ->17034
/* 17015*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17017*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17020*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17023*/          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)
/* 17034*/        /*SwitchType*/ 19, MVT::v2i32,// ->17055
/* 17036*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17038*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17041*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17044*/          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)
/* 17055*/        /*SwitchType*/ 19, MVT::v16i8,// ->17076
/* 17057*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17059*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17062*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17065*/          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)
/* 17076*/        /*SwitchType*/ 19, MVT::v8i16,// ->17097
/* 17078*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17080*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17083*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17086*/          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)
/* 17097*/        /*SwitchType*/ 19, MVT::v4i32,// ->17118
/* 17099*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17101*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17104*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17107*/          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)
/* 17118*/        0, // EndSwitchType
/* 17119*/      /*SwitchOpcode*/ 81, TARGET_VAL(ARMISD::VMULLs),// ->17203
/* 17122*/        OPC_RecordChild0, // #1 = $Vn
/* 17123*/        OPC_Scope, 25, /*->17150*/ // 3 children in Scope
/* 17125*/          OPC_CheckChild0Type, MVT::v8i8,
/* 17127*/          OPC_RecordChild1, // #2 = $Vm
/* 17128*/          OPC_MoveParent,
/* 17129*/          OPC_CheckType, MVT::v8i16,
/* 17131*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17133*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17136*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17139*/          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)
/* 17150*/        /*Scope*/ 25, /*->17176*/
/* 17151*/          OPC_CheckChild0Type, MVT::v4i16,
/* 17153*/          OPC_RecordChild1, // #2 = $Vm
/* 17154*/          OPC_MoveParent,
/* 17155*/          OPC_CheckType, MVT::v4i32,
/* 17157*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17159*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17162*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17165*/          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)
/* 17176*/        /*Scope*/ 25, /*->17202*/
/* 17177*/          OPC_CheckChild0Type, MVT::v2i32,
/* 17179*/          OPC_RecordChild1, // #2 = $Vm
/* 17180*/          OPC_MoveParent,
/* 17181*/          OPC_CheckType, MVT::v2i64,
/* 17183*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17185*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17188*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17191*/          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)
/* 17202*/        0, /*End of Scope*/
/* 17203*/      /*SwitchOpcode*/ 81, TARGET_VAL(ARMISD::VMULLu),// ->17287
/* 17206*/        OPC_RecordChild0, // #1 = $Vn
/* 17207*/        OPC_Scope, 25, /*->17234*/ // 3 children in Scope
/* 17209*/          OPC_CheckChild0Type, MVT::v8i8,
/* 17211*/          OPC_RecordChild1, // #2 = $Vm
/* 17212*/          OPC_MoveParent,
/* 17213*/          OPC_CheckType, MVT::v8i16,
/* 17215*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17217*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17220*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17223*/          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)
/* 17234*/        /*Scope*/ 25, /*->17260*/
/* 17235*/          OPC_CheckChild0Type, MVT::v4i16,
/* 17237*/          OPC_RecordChild1, // #2 = $Vm
/* 17238*/          OPC_MoveParent,
/* 17239*/          OPC_CheckType, MVT::v4i32,
/* 17241*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17243*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17246*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17249*/          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)
/* 17260*/        /*Scope*/ 25, /*->17286*/
/* 17261*/          OPC_CheckChild0Type, MVT::v2i32,
/* 17263*/          OPC_RecordChild1, // #2 = $Vm
/* 17264*/          OPC_MoveParent,
/* 17265*/          OPC_CheckType, MVT::v2i64,
/* 17267*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17269*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17272*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17275*/          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)
/* 17286*/        0, /*End of Scope*/
/* 17287*/      /*SwitchOpcode*/ 87, TARGET_VAL(ARMISD::VDUP),// ->17377
/* 17290*/        OPC_RecordChild0, // #1 = $val2
/* 17291*/        OPC_CheckChild0Type, MVT::i32,
/* 17293*/        OPC_MoveParent,
/* 17294*/        OPC_SwitchType /*3 cases */, 25, MVT::v16i8,// ->17322
/* 17297*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 17299*/          OPC_EmitInteger, MVT::i32, 0, 
/* 17302*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17305*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 17311*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADD_qr_i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$val2)) - Complexity = 6
                    // Dst: (MVE_VADD_qr_i8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1, GPR:{ *:[i32] }:$val2)
/* 17322*/        /*SwitchType*/ 25, MVT::v8i16,// ->17349
/* 17324*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 17326*/          OPC_EmitInteger, MVT::i32, 0, 
/* 17329*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17332*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 17338*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADD_qr_i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$val2)) - Complexity = 6
                    // Dst: (MVE_VADD_qr_i16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1, GPR:{ *:[i32] }:$val2)
/* 17349*/        /*SwitchType*/ 25, MVT::v4i32,// ->17376
/* 17351*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 17353*/          OPC_EmitInteger, MVT::i32, 0, 
/* 17356*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17359*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 17365*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADD_qr_i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$val2)) - Complexity = 6
                    // Dst: (MVE_VADD_qr_i32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1, GPR:{ *:[i32] }:$val2)
/* 17376*/        0, // EndSwitchType
/* 17377*/      0, // EndSwitchOpcode
/* 17378*/    /*Scope*/ 50|128,4/*562*/, /*->17942*/
/* 17380*/      OPC_MoveChild0,
/* 17381*/      OPC_SwitchOpcode /*6 cases */, 76, TARGET_VAL(ISD::SIGN_EXTEND),// ->17461
/* 17385*/        OPC_RecordChild0, // #0 = $Vm
/* 17386*/        OPC_Scope, 24, /*->17412*/ // 3 children in Scope
/* 17388*/          OPC_CheckChild0Type, MVT::v8i8,
/* 17390*/          OPC_MoveParent,
/* 17391*/          OPC_RecordChild1, // #1 = $Vn
/* 17392*/          OPC_CheckType, MVT::v8i16,
/* 17394*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17396*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17399*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17402*/          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)
/* 17412*/        /*Scope*/ 24, /*->17437*/
/* 17413*/          OPC_CheckChild0Type, MVT::v4i16,
/* 17415*/          OPC_MoveParent,
/* 17416*/          OPC_RecordChild1, // #1 = $Vn
/* 17417*/          OPC_CheckType, MVT::v4i32,
/* 17419*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17421*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17424*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17427*/          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)
/* 17437*/        /*Scope*/ 22, /*->17460*/
/* 17438*/          OPC_MoveParent,
/* 17439*/          OPC_RecordChild1, // #1 = $Vn
/* 17440*/          OPC_CheckType, MVT::v2i64,
/* 17442*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17444*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17447*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17450*/          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)
/* 17460*/        0, /*End of Scope*/
/* 17461*/      /*SwitchOpcode*/ 76, TARGET_VAL(ISD::ZERO_EXTEND),// ->17540
/* 17464*/        OPC_RecordChild0, // #0 = $Vm
/* 17465*/        OPC_Scope, 24, /*->17491*/ // 3 children in Scope
/* 17467*/          OPC_CheckChild0Type, MVT::v8i8,
/* 17469*/          OPC_MoveParent,
/* 17470*/          OPC_RecordChild1, // #1 = $Vn
/* 17471*/          OPC_CheckType, MVT::v8i16,
/* 17473*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17475*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17478*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17481*/          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)
/* 17491*/        /*Scope*/ 24, /*->17516*/
/* 17492*/          OPC_CheckChild0Type, MVT::v4i16,
/* 17494*/          OPC_MoveParent,
/* 17495*/          OPC_RecordChild1, // #1 = $Vn
/* 17496*/          OPC_CheckType, MVT::v4i32,
/* 17498*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17500*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17503*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17506*/          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)
/* 17516*/        /*Scope*/ 22, /*->17539*/
/* 17517*/          OPC_MoveParent,
/* 17518*/          OPC_RecordChild1, // #1 = $Vn
/* 17519*/          OPC_CheckType, MVT::v2i64,
/* 17521*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17523*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17526*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17529*/          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)
/* 17539*/        0, /*End of Scope*/
/* 17540*/      /*SwitchOpcode*/ 4|128,1/*132*/, TARGET_VAL(ISD::MUL),// ->17676
/* 17544*/        OPC_RecordChild0, // #0 = $Vn
/* 17545*/        OPC_RecordChild1, // #1 = $Vm
/* 17546*/        OPC_MoveParent,
/* 17547*/        OPC_RecordChild1, // #2 = $src1
/* 17548*/        OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->17570
/* 17551*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17553*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17556*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17559*/          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)
/* 17570*/        /*SwitchType*/ 19, MVT::v4i16,// ->17591
/* 17572*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17574*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17577*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17580*/          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)
/* 17591*/        /*SwitchType*/ 19, MVT::v2i32,// ->17612
/* 17593*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17595*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17598*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17601*/          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)
/* 17612*/        /*SwitchType*/ 19, MVT::v16i8,// ->17633
/* 17614*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17616*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17619*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17622*/          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)
/* 17633*/        /*SwitchType*/ 19, MVT::v8i16,// ->17654
/* 17635*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17637*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17640*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17643*/          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)
/* 17654*/        /*SwitchType*/ 19, MVT::v4i32,// ->17675
/* 17656*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17658*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17661*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17664*/          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)
/* 17675*/        0, // EndSwitchType
/* 17676*/      /*SwitchOpcode*/ 84, TARGET_VAL(ARMISD::VMULLs),// ->17763
/* 17679*/        OPC_RecordChild0, // #0 = $Vn
/* 17680*/        OPC_Scope, 26, /*->17708*/ // 3 children in Scope
/* 17682*/          OPC_CheckChild0Type, MVT::v8i8,
/* 17684*/          OPC_RecordChild1, // #1 = $Vm
/* 17685*/          OPC_MoveParent,
/* 17686*/          OPC_RecordChild1, // #2 = $src1
/* 17687*/          OPC_CheckType, MVT::v8i16,
/* 17689*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17691*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17694*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17697*/          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)
/* 17708*/        /*Scope*/ 26, /*->17735*/
/* 17709*/          OPC_CheckChild0Type, MVT::v4i16,
/* 17711*/          OPC_RecordChild1, // #1 = $Vm
/* 17712*/          OPC_MoveParent,
/* 17713*/          OPC_RecordChild1, // #2 = $src1
/* 17714*/          OPC_CheckType, MVT::v4i32,
/* 17716*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17718*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17721*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17724*/          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)
/* 17735*/        /*Scope*/ 26, /*->17762*/
/* 17736*/          OPC_CheckChild0Type, MVT::v2i32,
/* 17738*/          OPC_RecordChild1, // #1 = $Vm
/* 17739*/          OPC_MoveParent,
/* 17740*/          OPC_RecordChild1, // #2 = $src1
/* 17741*/          OPC_CheckType, MVT::v2i64,
/* 17743*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17745*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17748*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17751*/          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)
/* 17762*/        0, /*End of Scope*/
/* 17763*/      /*SwitchOpcode*/ 84, TARGET_VAL(ARMISD::VMULLu),// ->17850
/* 17766*/        OPC_RecordChild0, // #0 = $Vn
/* 17767*/        OPC_Scope, 26, /*->17795*/ // 3 children in Scope
/* 17769*/          OPC_CheckChild0Type, MVT::v8i8,
/* 17771*/          OPC_RecordChild1, // #1 = $Vm
/* 17772*/          OPC_MoveParent,
/* 17773*/          OPC_RecordChild1, // #2 = $src1
/* 17774*/          OPC_CheckType, MVT::v8i16,
/* 17776*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17778*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17781*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17784*/          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)
/* 17795*/        /*Scope*/ 26, /*->17822*/
/* 17796*/          OPC_CheckChild0Type, MVT::v4i16,
/* 17798*/          OPC_RecordChild1, // #1 = $Vm
/* 17799*/          OPC_MoveParent,
/* 17800*/          OPC_RecordChild1, // #2 = $src1
/* 17801*/          OPC_CheckType, MVT::v4i32,
/* 17803*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17805*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17808*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17811*/          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)
/* 17822*/        /*Scope*/ 26, /*->17849*/
/* 17823*/          OPC_CheckChild0Type, MVT::v2i32,
/* 17825*/          OPC_RecordChild1, // #1 = $Vm
/* 17826*/          OPC_MoveParent,
/* 17827*/          OPC_RecordChild1, // #2 = $src1
/* 17828*/          OPC_CheckType, MVT::v2i64,
/* 17830*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17832*/          OPC_EmitInteger, MVT::i32, 14, 
/* 17835*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17838*/          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)
/* 17849*/        0, /*End of Scope*/
/* 17850*/      /*SwitchOpcode*/ 88, TARGET_VAL(ARMISD::VDUP),// ->17941
/* 17853*/        OPC_RecordChild0, // #0 = $val2
/* 17854*/        OPC_CheckChild0Type, MVT::i32,
/* 17856*/        OPC_MoveParent,
/* 17857*/        OPC_RecordChild1, // #1 = $val1
/* 17858*/        OPC_SwitchType /*3 cases */, 25, MVT::v16i8,// ->17886
/* 17861*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 17863*/          OPC_EmitInteger, MVT::i32, 0, 
/* 17866*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17869*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 17875*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADD_qr_i8), 0,
                        MVT::v16i8, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                    // Src: (add:{ *:[v16i8] } (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$val2), MQPR:{ *:[v16i8] }:$val1) - Complexity = 6
                    // Dst: (MVE_VADD_qr_i8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1, GPR:{ *:[i32] }:$val2)
/* 17886*/        /*SwitchType*/ 25, MVT::v8i16,// ->17913
/* 17888*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 17890*/          OPC_EmitInteger, MVT::i32, 0, 
/* 17893*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17896*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 17902*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADD_qr_i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                    // Src: (add:{ *:[v8i16] } (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$val2), MQPR:{ *:[v8i16] }:$val1) - Complexity = 6
                    // Dst: (MVE_VADD_qr_i16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1, GPR:{ *:[i32] }:$val2)
/* 17913*/        /*SwitchType*/ 25, MVT::v4i32,// ->17940
/* 17915*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 17917*/          OPC_EmitInteger, MVT::i32, 0, 
/* 17920*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17923*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 17929*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADD_qr_i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                    // Src: (add:{ *:[v4i32] } (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$val2), MQPR:{ *:[v4i32] }:$val1) - Complexity = 6
                    // Dst: (MVE_VADD_qr_i32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1, GPR:{ *:[i32] }:$val2)
/* 17940*/        0, // EndSwitchType
/* 17941*/      0, // EndSwitchOpcode
/* 17942*/    /*Scope*/ 123|128,1/*251*/, /*->18195*/
/* 17944*/      OPC_RecordChild0, // #0 = $Vn
/* 17945*/      OPC_RecordChild1, // #1 = $Vm
/* 17946*/      OPC_SwitchType /*8 cases */, 18, MVT::v8i8,// ->17967
/* 17949*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17951*/        OPC_EmitInteger, MVT::i32, 14, 
/* 17954*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17957*/        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)
/* 17967*/      /*SwitchType*/ 18, MVT::v4i16,// ->17987
/* 17969*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17971*/        OPC_EmitInteger, MVT::i32, 14, 
/* 17974*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17977*/        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)
/* 17987*/      /*SwitchType*/ 18, MVT::v2i32,// ->18007
/* 17989*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 17991*/        OPC_EmitInteger, MVT::i32, 14, 
/* 17994*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 17997*/        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)
/* 18007*/      /*SwitchType*/ 47, MVT::v16i8,// ->18056
/* 18009*/        OPC_Scope, 18, /*->18029*/ // 2 children in Scope
/* 18011*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18013*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18016*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18019*/          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)
/* 18029*/        /*Scope*/ 25, /*->18055*/
/* 18030*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 18032*/          OPC_EmitInteger, MVT::i32, 0, 
/* 18035*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18038*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 18044*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDi8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VADDi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 18055*/        0, /*End of Scope*/
/* 18056*/      /*SwitchType*/ 47, MVT::v8i16,// ->18105
/* 18058*/        OPC_Scope, 18, /*->18078*/ // 2 children in Scope
/* 18060*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18062*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18065*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18068*/          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)
/* 18078*/        /*Scope*/ 25, /*->18104*/
/* 18079*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 18081*/          OPC_EmitInteger, MVT::i32, 0, 
/* 18084*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18087*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 18093*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDi16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VADDi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 18104*/        0, /*End of Scope*/
/* 18105*/      /*SwitchType*/ 47, MVT::v4i32,// ->18154
/* 18107*/        OPC_Scope, 18, /*->18127*/ // 2 children in Scope
/* 18109*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18111*/          OPC_EmitInteger, MVT::i32, 14, 
/* 18114*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18117*/          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)
/* 18127*/        /*Scope*/ 25, /*->18153*/
/* 18128*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 18130*/          OPC_EmitInteger, MVT::i32, 0, 
/* 18133*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18136*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 18142*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDi32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (add:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VADDi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 18153*/        0, /*End of Scope*/
/* 18154*/      /*SwitchType*/ 18, MVT::v1i64,// ->18174
/* 18156*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18158*/        OPC_EmitInteger, MVT::i32, 14, 
/* 18161*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18164*/        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)
/* 18174*/      /*SwitchType*/ 18, MVT::v2i64,// ->18194
/* 18176*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 18178*/        OPC_EmitInteger, MVT::i32, 14, 
/* 18181*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18184*/        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)
/* 18194*/      0, // EndSwitchType
/* 18195*/    0, /*End of Scope*/
/* 18196*/  /*SwitchOpcode*/ 93|128,82/*10589*/, TARGET_VAL(ISD::AND),// ->28789
/* 18200*/    OPC_Scope, 63, /*->18265*/ // 49 children in Scope
/* 18202*/      OPC_CheckAndImm, 127|128,1|128,124|128,7/*16711935*/, 
/* 18207*/      OPC_MoveChild0,
/* 18208*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/* 18211*/      OPC_RecordChild0, // #0 = $Src
/* 18212*/      OPC_CheckChild1Integer, 8, 
/* 18214*/      OPC_CheckChild1Type, MVT::i32,
/* 18216*/      OPC_MoveParent,
/* 18217*/      OPC_CheckType, MVT::i32,
/* 18219*/      OPC_Scope, 21, /*->18242*/ // 2 children in Scope
/* 18221*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 18223*/        OPC_EmitInteger, MVT::i32, 1, 
/* 18226*/        OPC_EmitInteger, MVT::i32, 14, 
/* 18229*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18232*/        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] })
/* 18242*/      /*Scope*/ 21, /*->18264*/
/* 18243*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 18245*/        OPC_EmitInteger, MVT::i32, 1, 
/* 18248*/        OPC_EmitInteger, MVT::i32, 14, 
/* 18251*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18254*/        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] })
/* 18264*/      0, /*End of Scope*/
/* 18265*/    /*Scope*/ 44, /*->18310*/
/* 18266*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 18269*/      OPC_MoveChild0,
/* 18270*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 18273*/      OPC_RecordChild0, // #0 = $Rm
/* 18274*/      OPC_RecordChild1, // #1 = $rot
/* 18275*/      OPC_MoveChild1,
/* 18276*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18279*/      OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 18281*/      OPC_CheckType, MVT::i32,
/* 18283*/      OPC_MoveParent,
/* 18284*/      OPC_MoveParent,
/* 18285*/      OPC_CheckType, MVT::i32,
/* 18287*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 18289*/      OPC_EmitConvertToTarget, 1,
/* 18291*/      OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 18294*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18297*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18300*/      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))
/* 18310*/    /*Scope*/ 45, /*->18356*/
/* 18311*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 18315*/      OPC_MoveChild0,
/* 18316*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 18319*/      OPC_RecordChild0, // #0 = $Rm
/* 18320*/      OPC_RecordChild1, // #1 = $rot
/* 18321*/      OPC_MoveChild1,
/* 18322*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18325*/      OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 18327*/      OPC_CheckType, MVT::i32,
/* 18329*/      OPC_MoveParent,
/* 18330*/      OPC_MoveParent,
/* 18331*/      OPC_CheckType, MVT::i32,
/* 18333*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 18335*/      OPC_EmitConvertToTarget, 1,
/* 18337*/      OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 18340*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18343*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18346*/      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))
/* 18356*/    /*Scope*/ 46, /*->18403*/
/* 18357*/      OPC_CheckAndImm, 127|128,1|128,124|128,7/*16711935*/, 
/* 18362*/      OPC_MoveChild0,
/* 18363*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 18366*/      OPC_RecordChild0, // #0 = $Rm
/* 18367*/      OPC_RecordChild1, // #1 = $rot
/* 18368*/      OPC_MoveChild1,
/* 18369*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18372*/      OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 18374*/      OPC_CheckType, MVT::i32,
/* 18376*/      OPC_MoveParent,
/* 18377*/      OPC_MoveParent,
/* 18378*/      OPC_CheckType, MVT::i32,
/* 18380*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 18382*/      OPC_EmitConvertToTarget, 1,
/* 18384*/      OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 18387*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18390*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18393*/      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))
/* 18403*/    /*Scope*/ 44, /*->18448*/
/* 18404*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 18407*/      OPC_MoveChild0,
/* 18408*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 18411*/      OPC_RecordChild0, // #0 = $Rm
/* 18412*/      OPC_RecordChild1, // #1 = $rot
/* 18413*/      OPC_MoveChild1,
/* 18414*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18417*/      OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 18419*/      OPC_CheckType, MVT::i32,
/* 18421*/      OPC_MoveParent,
/* 18422*/      OPC_MoveParent,
/* 18423*/      OPC_CheckType, MVT::i32,
/* 18425*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 18427*/      OPC_EmitConvertToTarget, 1,
/* 18429*/      OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 18432*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18435*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18438*/      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))
/* 18448*/    /*Scope*/ 45, /*->18494*/
/* 18449*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 18453*/      OPC_MoveChild0,
/* 18454*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 18457*/      OPC_RecordChild0, // #0 = $Rm
/* 18458*/      OPC_RecordChild1, // #1 = $rot
/* 18459*/      OPC_MoveChild1,
/* 18460*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18463*/      OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 18465*/      OPC_CheckType, MVT::i32,
/* 18467*/      OPC_MoveParent,
/* 18468*/      OPC_MoveParent,
/* 18469*/      OPC_CheckType, MVT::i32,
/* 18471*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 18473*/      OPC_EmitConvertToTarget, 1,
/* 18475*/      OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 18478*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18481*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18484*/      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))
/* 18494*/    /*Scope*/ 46, /*->18541*/
/* 18495*/      OPC_CheckAndImm, 127|128,1|128,124|128,7/*16711935*/, 
/* 18500*/      OPC_MoveChild0,
/* 18501*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 18504*/      OPC_RecordChild0, // #0 = $Rm
/* 18505*/      OPC_RecordChild1, // #1 = $rot
/* 18506*/      OPC_MoveChild1,
/* 18507*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18510*/      OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 18512*/      OPC_CheckType, MVT::i32,
/* 18514*/      OPC_MoveParent,
/* 18515*/      OPC_MoveParent,
/* 18516*/      OPC_CheckType, MVT::i32,
/* 18518*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 18520*/      OPC_EmitConvertToTarget, 1,
/* 18522*/      OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 18525*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18528*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18531*/      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))
/* 18541*/    /*Scope*/ 27, /*->18569*/
/* 18542*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 18545*/      OPC_RecordChild0, // #0 = $Src
/* 18546*/      OPC_CheckType, MVT::i32,
/* 18548*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 18550*/      OPC_EmitInteger, MVT::i32, 0, 
/* 18553*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18556*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18559*/      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] })
/* 18569*/    /*Scope*/ 28, /*->18598*/
/* 18570*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 18574*/      OPC_RecordChild0, // #0 = $Src
/* 18575*/      OPC_CheckType, MVT::i32,
/* 18577*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 18579*/      OPC_EmitInteger, MVT::i32, 0, 
/* 18582*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18585*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18588*/      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] })
/* 18598*/    /*Scope*/ 29, /*->18628*/
/* 18599*/      OPC_CheckAndImm, 127|128,1|128,124|128,7/*16711935*/, 
/* 18604*/      OPC_RecordChild0, // #0 = $Src
/* 18605*/      OPC_CheckType, MVT::i32,
/* 18607*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 18609*/      OPC_EmitInteger, MVT::i32, 0, 
/* 18612*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18615*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18618*/      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] })
/* 18628*/    /*Scope*/ 27, /*->18656*/
/* 18629*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 18632*/      OPC_RecordChild0, // #0 = $Rm
/* 18633*/      OPC_CheckType, MVT::i32,
/* 18635*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 18637*/      OPC_EmitInteger, MVT::i32, 0, 
/* 18640*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18643*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18646*/      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] })
/* 18656*/    /*Scope*/ 28, /*->18685*/
/* 18657*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 18661*/      OPC_RecordChild0, // #0 = $Rm
/* 18662*/      OPC_CheckType, MVT::i32,
/* 18664*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 18666*/      OPC_EmitInteger, MVT::i32, 0, 
/* 18669*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18672*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18675*/      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] })
/* 18685*/    /*Scope*/ 29, /*->18715*/
/* 18686*/      OPC_CheckAndImm, 127|128,1|128,124|128,7/*16711935*/, 
/* 18691*/      OPC_RecordChild0, // #0 = $Rm
/* 18692*/      OPC_CheckType, MVT::i32,
/* 18694*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 18696*/      OPC_EmitInteger, MVT::i32, 0, 
/* 18699*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18702*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18705*/      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] })
/* 18715*/    /*Scope*/ 47, /*->18763*/
/* 18716*/      OPC_RecordChild0, // #0 = $Rn
/* 18717*/      OPC_MoveChild1,
/* 18718*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 18721*/      OPC_RecordChild0, // #1 = $shift
/* 18722*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 18733*/      OPC_MoveParent,
/* 18734*/      OPC_CheckType, MVT::i32,
/* 18736*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 18738*/      OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 18741*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18744*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18747*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18750*/      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)
/* 18763*/    /*Scope*/ 39, /*->18803*/
/* 18764*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 18767*/      OPC_MoveChild0,
/* 18768*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
/* 18771*/      OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 18772*/      OPC_CheckFoldableChainNode,
/* 18773*/      OPC_CheckChild1Integer, 118|128,11/*1526*/, 
/* 18776*/      OPC_RecordChild2, // #1 = $addr
/* 18777*/      OPC_CheckChild2Type, MVT::i32,
/* 18779*/      OPC_CheckPredicate, 24, // Predicate_ldrex_1
/* 18781*/      OPC_MoveParent,
/* 18782*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 18784*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 18787*/      OPC_EmitMergeInputChains1_0,
/* 18788*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18791*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18794*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDREXB), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (and:{ *:[i32] } (intrinsic_w_chain:{ *:[i32] } 1526:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldrex_1>>, 255:{ *:[i32] }) - Complexity = 23
                // Dst: (t2LDREXB:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 18803*/    /*Scope*/ 40, /*->18844*/
/* 18804*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 18808*/      OPC_MoveChild0,
/* 18809*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
/* 18812*/      OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 18813*/      OPC_CheckFoldableChainNode,
/* 18814*/      OPC_CheckChild1Integer, 118|128,11/*1526*/, 
/* 18817*/      OPC_RecordChild2, // #1 = $addr
/* 18818*/      OPC_CheckChild2Type, MVT::i32,
/* 18820*/      OPC_CheckPredicate, 25, // Predicate_ldrex_2
/* 18822*/      OPC_MoveParent,
/* 18823*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 18825*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 18828*/      OPC_EmitMergeInputChains1_0,
/* 18829*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18832*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18835*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDREXH), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (and:{ *:[i32] } (intrinsic_w_chain:{ *:[i32] } 1526:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldrex_2>>, 65535:{ *:[i32] }) - Complexity = 23
                // Dst: (t2LDREXH:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 18844*/    /*Scope*/ 39, /*->18884*/
/* 18845*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 18848*/      OPC_MoveChild0,
/* 18849*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
/* 18852*/      OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 18853*/      OPC_CheckFoldableChainNode,
/* 18854*/      OPC_CheckChild1Integer, 112|128,11/*1520*/, 
/* 18857*/      OPC_RecordChild2, // #1 = $addr
/* 18858*/      OPC_CheckChild2Type, MVT::i32,
/* 18860*/      OPC_CheckPredicate, 24, // Predicate_ldaex_1
/* 18862*/      OPC_MoveParent,
/* 18863*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 18865*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 18868*/      OPC_EmitMergeInputChains1_0,
/* 18869*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18872*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18875*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDAEXB), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (and:{ *:[i32] } (intrinsic_w_chain:{ *:[i32] } 1520:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_1>>, 255:{ *:[i32] }) - Complexity = 23
                // Dst: (t2LDAEXB:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 18884*/    /*Scope*/ 40, /*->18925*/
/* 18885*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 18889*/      OPC_MoveChild0,
/* 18890*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
/* 18893*/      OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 18894*/      OPC_CheckFoldableChainNode,
/* 18895*/      OPC_CheckChild1Integer, 112|128,11/*1520*/, 
/* 18898*/      OPC_RecordChild2, // #1 = $addr
/* 18899*/      OPC_CheckChild2Type, MVT::i32,
/* 18901*/      OPC_CheckPredicate, 25, // Predicate_ldaex_2
/* 18903*/      OPC_MoveParent,
/* 18904*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 18906*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 18909*/      OPC_EmitMergeInputChains1_0,
/* 18910*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18913*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18916*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDAEXH), 0|OPFL_Chain,
                    MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (and:{ *:[i32] } (intrinsic_w_chain:{ *:[i32] } 1520:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_2>>, 65535:{ *:[i32] }) - Complexity = 23
                // Dst: (t2LDAEXH:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 18925*/    /*Scope*/ 47, /*->18973*/
/* 18926*/      OPC_MoveChild0,
/* 18927*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 18930*/      OPC_RecordChild0, // #0 = $shift
/* 18931*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 18942*/      OPC_MoveParent,
/* 18943*/      OPC_RecordChild1, // #1 = $Rn
/* 18944*/      OPC_CheckType, MVT::i32,
/* 18946*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 18948*/      OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 18951*/      OPC_EmitInteger, MVT::i32, 14, 
/* 18954*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18957*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 18960*/      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)
/* 18973*/    /*Scope*/ 76, /*->19050*/
/* 18974*/      OPC_RecordChild0, // #0 = $Rn
/* 18975*/      OPC_MoveChild1,
/* 18976*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 18979*/      OPC_RecordChild0, // #1 = $shift
/* 18980*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 18991*/      OPC_MoveParent,
/* 18992*/      OPC_CheckType, MVT::i32,
/* 18994*/      OPC_Scope, 26, /*->19022*/ // 2 children in Scope
/* 18996*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 18998*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 19001*/        OPC_EmitInteger, MVT::i32, 14, 
/* 19004*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19007*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19010*/        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)
/* 19022*/      /*Scope*/ 26, /*->19049*/
/* 19023*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19025*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 19028*/        OPC_EmitInteger, MVT::i32, 14, 
/* 19031*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19034*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19037*/        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)
/* 19049*/      0, /*End of Scope*/
/* 19050*/    /*Scope*/ 76, /*->19127*/
/* 19051*/      OPC_MoveChild0,
/* 19052*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 19055*/      OPC_RecordChild0, // #0 = $shift
/* 19056*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19067*/      OPC_MoveParent,
/* 19068*/      OPC_RecordChild1, // #1 = $Rn
/* 19069*/      OPC_CheckType, MVT::i32,
/* 19071*/      OPC_Scope, 26, /*->19099*/ // 2 children in Scope
/* 19073*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19075*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 19078*/        OPC_EmitInteger, MVT::i32, 14, 
/* 19081*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19084*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19087*/        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)
/* 19099*/      /*Scope*/ 26, /*->19126*/
/* 19100*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19102*/        OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 19105*/        OPC_EmitInteger, MVT::i32, 14, 
/* 19108*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19111*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19114*/        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)
/* 19126*/      0, /*End of Scope*/
/* 19127*/    /*Scope*/ 84|128,1/*212*/, /*->19341*/
/* 19129*/      OPC_RecordChild0, // #0 = $Rn
/* 19130*/      OPC_Scope, 30, /*->19162*/ // 4 children in Scope
/* 19132*/        OPC_RecordChild1, // #1 = $shift
/* 19133*/        OPC_CheckType, MVT::i32,
/* 19135*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19137*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 19140*/        OPC_EmitInteger, MVT::i32, 14, 
/* 19143*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19146*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19149*/        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)
/* 19162*/      /*Scope*/ 95, /*->19258*/
/* 19163*/        OPC_MoveChild1,
/* 19164*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 19167*/        OPC_RecordChild0, // #1 = $imm
/* 19168*/        OPC_MoveChild0,
/* 19169*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19172*/        OPC_Scope, 41, /*->19215*/ // 2 children in Scope
/* 19174*/          OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 19176*/          OPC_MoveParent,
/* 19177*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19188*/          OPC_MoveParent,
/* 19189*/          OPC_CheckType, MVT::i32,
/* 19191*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19193*/          OPC_EmitConvertToTarget, 1,
/* 19195*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19198*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19201*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19204*/          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)
/* 19215*/        /*Scope*/ 41, /*->19257*/
/* 19216*/          OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 19218*/          OPC_MoveParent,
/* 19219*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19230*/          OPC_MoveParent,
/* 19231*/          OPC_CheckType, MVT::i32,
/* 19233*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19235*/          OPC_EmitConvertToTarget, 1,
/* 19237*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19240*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19243*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19246*/          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)
/* 19257*/        0, /*End of Scope*/
/* 19258*/      /*Scope*/ 30, /*->19289*/
/* 19259*/        OPC_RecordChild1, // #1 = $Rn
/* 19260*/        OPC_CheckType, MVT::i32,
/* 19262*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19264*/        OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 19267*/        OPC_EmitInteger, MVT::i32, 14, 
/* 19270*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19273*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19276*/        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)
/* 19289*/      /*Scope*/ 50, /*->19340*/
/* 19290*/        OPC_MoveChild1,
/* 19291*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 19294*/        OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19305*/        OPC_RecordChild1, // #1 = $imm
/* 19306*/        OPC_MoveChild1,
/* 19307*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19310*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 19312*/        OPC_MoveParent,
/* 19313*/        OPC_MoveParent,
/* 19314*/        OPC_CheckType, MVT::i32,
/* 19316*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19318*/        OPC_EmitConvertToTarget, 1,
/* 19320*/        OPC_EmitInteger, MVT::i32, 14, 
/* 19323*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19326*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19329*/        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)
/* 19340*/      0, /*End of Scope*/
/* 19341*/    /*Scope*/ 102, /*->19444*/
/* 19342*/      OPC_MoveChild0,
/* 19343*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 19346*/      OPC_Scope, 47, /*->19395*/ // 2 children in Scope
/* 19348*/        OPC_RecordChild0, // #0 = $imm
/* 19349*/        OPC_MoveChild0,
/* 19350*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19353*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 19355*/        OPC_MoveParent,
/* 19356*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19367*/        OPC_MoveParent,
/* 19368*/        OPC_RecordChild1, // #1 = $Rn
/* 19369*/        OPC_CheckType, MVT::i32,
/* 19371*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19373*/        OPC_EmitConvertToTarget, 0,
/* 19375*/        OPC_EmitInteger, MVT::i32, 14, 
/* 19378*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19381*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19384*/        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)
/* 19395*/      /*Scope*/ 47, /*->19443*/
/* 19396*/        OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19407*/        OPC_RecordChild1, // #0 = $imm
/* 19408*/        OPC_MoveChild1,
/* 19409*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19412*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 19414*/        OPC_MoveParent,
/* 19415*/        OPC_MoveParent,
/* 19416*/        OPC_RecordChild1, // #1 = $Rn
/* 19417*/        OPC_CheckType, MVT::i32,
/* 19419*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19421*/        OPC_EmitConvertToTarget, 0,
/* 19423*/        OPC_EmitInteger, MVT::i32, 14, 
/* 19426*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19429*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19432*/        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)
/* 19443*/      0, /*End of Scope*/
/* 19444*/    /*Scope*/ 51, /*->19496*/
/* 19445*/      OPC_RecordChild0, // #0 = $Rn
/* 19446*/      OPC_MoveChild1,
/* 19447*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 19450*/      OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19461*/      OPC_RecordChild1, // #1 = $imm
/* 19462*/      OPC_MoveChild1,
/* 19463*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19466*/      OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 19468*/      OPC_MoveParent,
/* 19469*/      OPC_MoveParent,
/* 19470*/      OPC_CheckType, MVT::i32,
/* 19472*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19474*/      OPC_EmitConvertToTarget, 1,
/* 19476*/      OPC_EmitInteger, MVT::i32, 14, 
/* 19479*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19482*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19485*/      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)
/* 19496*/    /*Scope*/ 102, /*->19599*/
/* 19497*/      OPC_MoveChild0,
/* 19498*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 19501*/      OPC_Scope, 47, /*->19550*/ // 2 children in Scope
/* 19503*/        OPC_RecordChild0, // #0 = $imm
/* 19504*/        OPC_MoveChild0,
/* 19505*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19508*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 19510*/        OPC_MoveParent,
/* 19511*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19522*/        OPC_MoveParent,
/* 19523*/        OPC_RecordChild1, // #1 = $Rn
/* 19524*/        OPC_CheckType, MVT::i32,
/* 19526*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19528*/        OPC_EmitConvertToTarget, 0,
/* 19530*/        OPC_EmitInteger, MVT::i32, 14, 
/* 19533*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19536*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19539*/        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)
/* 19550*/      /*Scope*/ 47, /*->19598*/
/* 19551*/        OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19562*/        OPC_RecordChild1, // #0 = $imm
/* 19563*/        OPC_MoveChild1,
/* 19564*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19567*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 19569*/        OPC_MoveParent,
/* 19570*/        OPC_MoveParent,
/* 19571*/        OPC_RecordChild1, // #1 = $Rn
/* 19572*/        OPC_CheckType, MVT::i32,
/* 19574*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19576*/        OPC_EmitConvertToTarget, 0,
/* 19578*/        OPC_EmitInteger, MVT::i32, 14, 
/* 19581*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19584*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19587*/        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)
/* 19598*/      0, /*End of Scope*/
/* 19599*/    /*Scope*/ 80|128,1/*208*/, /*->19809*/
/* 19601*/      OPC_RecordChild0, // #0 = $Rn
/* 19602*/      OPC_Scope, 113, /*->19717*/ // 2 children in Scope
/* 19604*/        OPC_RecordChild1, // #1 = $shift
/* 19605*/        OPC_CheckType, MVT::i32,
/* 19607*/        OPC_Scope, 26, /*->19635*/ // 4 children in Scope
/* 19609*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19611*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 19614*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19617*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19620*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19623*/          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)
/* 19635*/        /*Scope*/ 26, /*->19662*/
/* 19636*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19638*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 19641*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19644*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19647*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19650*/          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)
/* 19662*/        /*Scope*/ 26, /*->19689*/
/* 19663*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19665*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 19668*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19671*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19674*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19677*/          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)
/* 19689*/        /*Scope*/ 26, /*->19716*/
/* 19690*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19692*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 19695*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19698*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19701*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19704*/          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)
/* 19716*/        0, /*End of Scope*/
/* 19717*/      /*Scope*/ 90, /*->19808*/
/* 19718*/        OPC_MoveChild1,
/* 19719*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 19722*/        OPC_RecordChild0, // #1 = $Rm
/* 19723*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19734*/        OPC_MoveParent,
/* 19735*/        OPC_CheckType, MVT::i32,
/* 19737*/        OPC_Scope, 22, /*->19761*/ // 3 children in Scope
/* 19739*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19741*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19744*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19747*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19750*/          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)
/* 19761*/        /*Scope*/ 22, /*->19784*/
/* 19762*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 19764*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 19767*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19770*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19773*/          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)
/* 19784*/        /*Scope*/ 22, /*->19807*/
/* 19785*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19787*/          OPC_EmitInteger, MVT::i32, 14, 
/* 19790*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19793*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19796*/          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)
/* 19807*/        0, /*End of Scope*/
/* 19808*/      0, /*End of Scope*/
/* 19809*/    /*Scope*/ 91, /*->19901*/
/* 19810*/      OPC_MoveChild0,
/* 19811*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 19814*/      OPC_RecordChild0, // #0 = $Rm
/* 19815*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19826*/      OPC_MoveParent,
/* 19827*/      OPC_RecordChild1, // #1 = $Rn
/* 19828*/      OPC_CheckType, MVT::i32,
/* 19830*/      OPC_Scope, 22, /*->19854*/ // 3 children in Scope
/* 19832*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19834*/        OPC_EmitInteger, MVT::i32, 14, 
/* 19837*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19840*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19843*/        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)
/* 19854*/      /*Scope*/ 22, /*->19877*/
/* 19855*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 19857*/        OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 19860*/        OPC_EmitInteger, MVT::i32, 14, 
/* 19863*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19866*/        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)
/* 19877*/      /*Scope*/ 22, /*->19900*/
/* 19878*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 19880*/        OPC_EmitInteger, MVT::i32, 14, 
/* 19883*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19886*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19889*/        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)
/* 19900*/      0, /*End of Scope*/
/* 19901*/    /*Scope*/ 38, /*->19940*/
/* 19902*/      OPC_RecordChild0, // #0 = $src
/* 19903*/      OPC_RecordChild1, // #1 = $imm
/* 19904*/      OPC_MoveChild1,
/* 19905*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19908*/      OPC_CheckPredicate, 26, // Predicate_mod_imm_not
/* 19910*/      OPC_MoveParent,
/* 19911*/      OPC_CheckType, MVT::i32,
/* 19913*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 19915*/      OPC_EmitConvertToTarget, 1,
/* 19917*/      OPC_EmitNodeXForm, 9, 2, // imm_not_XFORM
/* 19920*/      OPC_EmitInteger, MVT::i32, 14, 
/* 19923*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19926*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19929*/      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))
/* 19940*/    /*Scope*/ 23, /*->19964*/
/* 19941*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 19944*/      OPC_RecordChild0, // #0 = $Rm
/* 19945*/      OPC_CheckType, MVT::i32,
/* 19947*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 19949*/      OPC_EmitInteger, MVT::i32, 14, 
/* 19952*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19955*/      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)
/* 19964*/    /*Scope*/ 24, /*->19989*/
/* 19965*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 19969*/      OPC_RecordChild0, // #0 = $Rm
/* 19970*/      OPC_CheckType, MVT::i32,
/* 19972*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 19974*/      OPC_EmitInteger, MVT::i32, 14, 
/* 19977*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 19980*/      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)
/* 19989*/    /*Scope*/ 102|128,3/*486*/, /*->20477*/
/* 19991*/      OPC_RecordChild0, // #0 = $src
/* 19992*/      OPC_Scope, 37, /*->20031*/ // 4 children in Scope
/* 19994*/        OPC_RecordChild1, // #1 = $imm
/* 19995*/        OPC_MoveChild1,
/* 19996*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19999*/        OPC_CheckPredicate, 12, // Predicate_t2_so_imm_not
/* 20001*/        OPC_MoveParent,
/* 20002*/        OPC_CheckType, MVT::i32,
/* 20004*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 20006*/        OPC_EmitConvertToTarget, 1,
/* 20008*/        OPC_EmitNodeXForm, 1, 2, // t2_so_imm_not_XFORM
/* 20011*/        OPC_EmitInteger, MVT::i32, 14, 
/* 20014*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20017*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20020*/        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))
/* 20031*/      /*Scope*/ 41, /*->20073*/
/* 20032*/        OPC_MoveChild0,
/* 20033*/        OPC_CheckPredicate, 27, // Predicate_top16Zero
/* 20035*/        OPC_MoveParent,
/* 20036*/        OPC_RecordChild1, // #1 = $imm
/* 20037*/        OPC_MoveChild1,
/* 20038*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20041*/        OPC_CheckPredicate, 28, // Predicate_t2_so_imm_notSext
/* 20043*/        OPC_MoveParent,
/* 20044*/        OPC_CheckType, MVT::i32,
/* 20046*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 20048*/        OPC_EmitConvertToTarget, 1,
/* 20050*/        OPC_EmitNodeXForm, 10, 2, // t2_so_imm_notSext16_XFORM
/* 20053*/        OPC_EmitInteger, MVT::i32, 14, 
/* 20056*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20059*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20062*/        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))
/* 20073*/      /*Scope*/ 68|128,1/*196*/, /*->20271*/
/* 20075*/        OPC_RecordChild1, // #1 = $imm
/* 20076*/        OPC_Scope, 118, /*->20196*/ // 2 children in Scope
/* 20078*/          OPC_MoveChild1,
/* 20079*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20082*/          OPC_Scope, 29, /*->20113*/ // 4 children in Scope
/* 20084*/            OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 20086*/            OPC_MoveParent,
/* 20087*/            OPC_CheckType, MVT::i32,
/* 20089*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 20091*/            OPC_EmitConvertToTarget, 1,
/* 20093*/            OPC_EmitInteger, MVT::i32, 14, 
/* 20096*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20099*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20102*/            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)
/* 20113*/          /*Scope*/ 25, /*->20139*/
/* 20114*/            OPC_CheckPredicate, 29, // Predicate_bf_inv_mask_imm
/* 20116*/            OPC_MoveParent,
/* 20117*/            OPC_CheckType, MVT::i32,
/* 20119*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 20121*/            OPC_EmitConvertToTarget, 1,
/* 20123*/            OPC_EmitInteger, MVT::i32, 14, 
/* 20126*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20129*/            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)
/* 20139*/          /*Scope*/ 29, /*->20169*/
/* 20140*/            OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 20142*/            OPC_MoveParent,
/* 20143*/            OPC_CheckType, MVT::i32,
/* 20145*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 20147*/            OPC_EmitConvertToTarget, 1,
/* 20149*/            OPC_EmitInteger, MVT::i32, 14, 
/* 20152*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20155*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20158*/            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)
/* 20169*/          /*Scope*/ 25, /*->20195*/
/* 20170*/            OPC_CheckPredicate, 29, // Predicate_bf_inv_mask_imm
/* 20172*/            OPC_MoveParent,
/* 20173*/            OPC_CheckType, MVT::i32,
/* 20175*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 20177*/            OPC_EmitConvertToTarget, 1,
/* 20179*/            OPC_EmitInteger, MVT::i32, 14, 
/* 20182*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20185*/            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)
/* 20195*/          0, /*End of Scope*/
/* 20196*/        /*Scope*/ 73, /*->20270*/
/* 20197*/          OPC_CheckType, MVT::i32,
/* 20199*/          OPC_Scope, 22, /*->20223*/ // 3 children in Scope
/* 20201*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 20203*/            OPC_EmitInteger, MVT::i32, 14, 
/* 20206*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20209*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20212*/            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)
/* 20223*/          /*Scope*/ 22, /*->20246*/
/* 20224*/            OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 20226*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 20229*/            OPC_EmitInteger, MVT::i32, 14, 
/* 20232*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20235*/            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)
/* 20246*/          /*Scope*/ 22, /*->20269*/
/* 20247*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 20249*/            OPC_EmitInteger, MVT::i32, 14, 
/* 20252*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20255*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20258*/            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)
/* 20269*/          0, /*End of Scope*/
/* 20270*/        0, /*End of Scope*/
/* 20271*/      /*Scope*/ 75|128,1/*203*/, /*->20476*/
/* 20273*/        OPC_MoveChild1,
/* 20274*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 20277*/        OPC_Scope, 25|128,1/*153*/, /*->20433*/ // 2 children in Scope
/* 20280*/          OPC_RecordChild0, // #1 = $Vm
/* 20281*/          OPC_MoveChild1,
/* 20282*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20285*/          OPC_MoveChild0,
/* 20286*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 20289*/          OPC_MoveChild0,
/* 20290*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 20293*/          OPC_MoveParent,
/* 20294*/          OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 20296*/          OPC_SwitchType /*2 cases */, 23, MVT::v8i8,// ->20322
/* 20299*/            OPC_MoveParent,
/* 20300*/            OPC_MoveParent,
/* 20301*/            OPC_MoveParent,
/* 20302*/            OPC_CheckType, MVT::v2i32,
/* 20304*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 20306*/            OPC_EmitInteger, MVT::i32, 14, 
/* 20309*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20312*/            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] } (ARMvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))) - Complexity = 16
                      // Dst: (VBICd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 20322*/          /*SwitchType*/ 108, MVT::v16i8,// ->20432
/* 20324*/            OPC_MoveParent,
/* 20325*/            OPC_MoveParent,
/* 20326*/            OPC_MoveParent,
/* 20327*/            OPC_SwitchType /*3 cases */, 47, MVT::v4i32,// ->20377
/* 20330*/              OPC_Scope, 18, /*->20350*/ // 2 children in Scope
/* 20332*/                OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 20334*/                OPC_EmitInteger, MVT::i32, 14, 
/* 20337*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20340*/                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] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))) - Complexity = 16
                          // Dst: (VBICq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 20350*/              /*Scope*/ 25, /*->20376*/
/* 20351*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 20353*/                OPC_EmitInteger, MVT::i32, 0, 
/* 20356*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20359*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                              MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 20365*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                              MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (and:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, (xor:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qn, (bitconvert:{ *:[v4i32] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))) - Complexity = 16
                          // Dst: (MVE_VBIC:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 20376*/              0, /*End of Scope*/
/* 20377*/            /*SwitchType*/ 25, MVT::v8i16,// ->20404
/* 20379*/              OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 20381*/              OPC_EmitInteger, MVT::i32, 0, 
/* 20384*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20387*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 20393*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (and:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, (xor:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qn, (bitconvert:{ *:[v8i16] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))) - Complexity = 16
                        // Dst: (MVE_VBIC:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 20404*/            /*SwitchType*/ 25, MVT::v2i64,// ->20431
/* 20406*/              OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 20408*/              OPC_EmitInteger, MVT::i32, 0, 
/* 20411*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20414*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 20420*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                            MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (and:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, (xor:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qn, (bitconvert:{ *:[v2i64] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>))) - Complexity = 16
                        // Dst: (MVE_VBIC:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
/* 20431*/            0, // EndSwitchType
/* 20432*/          0, // EndSwitchType
/* 20433*/        /*Scope*/ 41, /*->20475*/
/* 20434*/          OPC_MoveChild0,
/* 20435*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20438*/          OPC_MoveChild0,
/* 20439*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 20442*/          OPC_MoveChild0,
/* 20443*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 20446*/          OPC_MoveParent,
/* 20447*/          OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 20449*/          OPC_CheckType, MVT::v8i8,
/* 20451*/          OPC_MoveParent,
/* 20452*/          OPC_MoveParent,
/* 20453*/          OPC_RecordChild1, // #1 = $Vm
/* 20454*/          OPC_MoveParent,
/* 20455*/          OPC_CheckType, MVT::v2i32,
/* 20457*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 20459*/          OPC_EmitInteger, MVT::i32, 14, 
/* 20462*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20465*/          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] } (ARMvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vm)) - Complexity = 16
                    // Dst: (VBICd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 20475*/        0, /*End of Scope*/
/* 20476*/      0, /*End of Scope*/
/* 20477*/    /*Scope*/ 92, /*->20570*/
/* 20478*/      OPC_MoveChild0,
/* 20479*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 20482*/      OPC_Scope, 42, /*->20526*/ // 2 children in Scope
/* 20484*/        OPC_RecordChild0, // #0 = $Vm
/* 20485*/        OPC_MoveChild1,
/* 20486*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20489*/        OPC_MoveChild0,
/* 20490*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 20493*/        OPC_MoveChild0,
/* 20494*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 20497*/        OPC_MoveParent,
/* 20498*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 20500*/        OPC_CheckType, MVT::v8i8,
/* 20502*/        OPC_MoveParent,
/* 20503*/        OPC_MoveParent,
/* 20504*/        OPC_MoveParent,
/* 20505*/        OPC_RecordChild1, // #1 = $Vn
/* 20506*/        OPC_CheckType, MVT::v2i32,
/* 20508*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 20510*/        OPC_EmitInteger, MVT::i32, 14, 
/* 20513*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20516*/        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] } (ARMvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), DPR:{ *:[v2i32] }:$Vn) - Complexity = 16
                  // Dst: (VBICd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 20526*/      /*Scope*/ 42, /*->20569*/
/* 20527*/        OPC_MoveChild0,
/* 20528*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20531*/        OPC_MoveChild0,
/* 20532*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 20535*/        OPC_MoveChild0,
/* 20536*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 20539*/        OPC_MoveParent,
/* 20540*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 20542*/        OPC_CheckType, MVT::v8i8,
/* 20544*/        OPC_MoveParent,
/* 20545*/        OPC_MoveParent,
/* 20546*/        OPC_RecordChild1, // #0 = $Vm
/* 20547*/        OPC_MoveParent,
/* 20548*/        OPC_RecordChild1, // #1 = $Vn
/* 20549*/        OPC_CheckType, MVT::v2i32,
/* 20551*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 20553*/        OPC_EmitInteger, MVT::i32, 14, 
/* 20556*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20559*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBICd), 0,
                      MVT::v2i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (and:{ *:[v2i32] } (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (ARMvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$Vn) - Complexity = 16
                  // Dst: (VBICd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 20569*/      0, /*End of Scope*/
/* 20570*/    /*Scope*/ 46, /*->20617*/
/* 20571*/      OPC_RecordChild0, // #0 = $Vn
/* 20572*/      OPC_MoveChild1,
/* 20573*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 20576*/      OPC_MoveChild0,
/* 20577*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20580*/      OPC_MoveChild0,
/* 20581*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 20584*/      OPC_MoveChild0,
/* 20585*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 20588*/      OPC_MoveParent,
/* 20589*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 20591*/      OPC_CheckType, MVT::v16i8,
/* 20593*/      OPC_MoveParent,
/* 20594*/      OPC_MoveParent,
/* 20595*/      OPC_RecordChild1, // #1 = $Vm
/* 20596*/      OPC_MoveParent,
/* 20597*/      OPC_CheckType, MVT::v4i32,
/* 20599*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 20601*/      OPC_EmitInteger, MVT::i32, 14, 
/* 20604*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20607*/      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] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vm)) - Complexity = 16
                // Dst: (VBICq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 20617*/    /*Scope*/ 92, /*->20710*/
/* 20618*/      OPC_MoveChild0,
/* 20619*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 20622*/      OPC_Scope, 42, /*->20666*/ // 2 children in Scope
/* 20624*/        OPC_RecordChild0, // #0 = $Vm
/* 20625*/        OPC_MoveChild1,
/* 20626*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20629*/        OPC_MoveChild0,
/* 20630*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 20633*/        OPC_MoveChild0,
/* 20634*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 20637*/        OPC_MoveParent,
/* 20638*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 20640*/        OPC_CheckType, MVT::v16i8,
/* 20642*/        OPC_MoveParent,
/* 20643*/        OPC_MoveParent,
/* 20644*/        OPC_MoveParent,
/* 20645*/        OPC_RecordChild1, // #1 = $Vn
/* 20646*/        OPC_CheckType, MVT::v4i32,
/* 20648*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 20650*/        OPC_EmitInteger, MVT::i32, 14, 
/* 20653*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20656*/        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] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), QPR:{ *:[v4i32] }:$Vn) - Complexity = 16
                  // Dst: (VBICq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 20666*/      /*Scope*/ 42, /*->20709*/
/* 20667*/        OPC_MoveChild0,
/* 20668*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20671*/        OPC_MoveChild0,
/* 20672*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 20675*/        OPC_MoveChild0,
/* 20676*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 20679*/        OPC_MoveParent,
/* 20680*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 20682*/        OPC_CheckType, MVT::v16i8,
/* 20684*/        OPC_MoveParent,
/* 20685*/        OPC_MoveParent,
/* 20686*/        OPC_RecordChild1, // #0 = $Vm
/* 20687*/        OPC_MoveParent,
/* 20688*/        OPC_RecordChild1, // #1 = $Vn
/* 20689*/        OPC_CheckType, MVT::v4i32,
/* 20691*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 20693*/        OPC_EmitInteger, MVT::i32, 14, 
/* 20696*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20699*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBICq), 0,
                      MVT::v4i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$Vn) - Complexity = 16
                  // Dst: (VBICq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 20709*/      0, /*End of Scope*/
/* 20710*/    /*Scope*/ 53, /*->20764*/
/* 20711*/      OPC_RecordChild0, // #0 = $Qm
/* 20712*/      OPC_MoveChild1,
/* 20713*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 20716*/      OPC_MoveChild0,
/* 20717*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20720*/      OPC_MoveChild0,
/* 20721*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 20724*/      OPC_MoveChild0,
/* 20725*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 20728*/      OPC_MoveParent,
/* 20729*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 20731*/      OPC_CheckType, MVT::v16i8,
/* 20733*/      OPC_MoveParent,
/* 20734*/      OPC_MoveParent,
/* 20735*/      OPC_RecordChild1, // #1 = $Qn
/* 20736*/      OPC_MoveParent,
/* 20737*/      OPC_CheckType, MVT::v8i16,
/* 20739*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 20741*/      OPC_EmitInteger, MVT::i32, 0, 
/* 20744*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20747*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 20753*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                    MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (and:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, (xor:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v8i16] }:$Qn)) - Complexity = 16
                // Dst: (MVE_VBIC:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 20764*/    /*Scope*/ 106, /*->20871*/
/* 20765*/      OPC_MoveChild0,
/* 20766*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 20769*/      OPC_Scope, 49, /*->20820*/ // 2 children in Scope
/* 20771*/        OPC_RecordChild0, // #0 = $Qn
/* 20772*/        OPC_MoveChild1,
/* 20773*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20776*/        OPC_MoveChild0,
/* 20777*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 20780*/        OPC_MoveChild0,
/* 20781*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 20784*/        OPC_MoveParent,
/* 20785*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 20787*/        OPC_CheckType, MVT::v16i8,
/* 20789*/        OPC_MoveParent,
/* 20790*/        OPC_MoveParent,
/* 20791*/        OPC_MoveParent,
/* 20792*/        OPC_RecordChild1, // #1 = $Qm
/* 20793*/        OPC_CheckType, MVT::v8i16,
/* 20795*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 20797*/        OPC_EmitInteger, MVT::i32, 0, 
/* 20800*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20803*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 20809*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                      MVT::v8i16, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qn, (bitconvert:{ *:[v8i16] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), MQPR:{ *:[v8i16] }:$Qm) - Complexity = 16
                  // Dst: (MVE_VBIC:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 20820*/      /*Scope*/ 49, /*->20870*/
/* 20821*/        OPC_MoveChild0,
/* 20822*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20825*/        OPC_MoveChild0,
/* 20826*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 20829*/        OPC_MoveChild0,
/* 20830*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 20833*/        OPC_MoveParent,
/* 20834*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 20836*/        OPC_CheckType, MVT::v16i8,
/* 20838*/        OPC_MoveParent,
/* 20839*/        OPC_MoveParent,
/* 20840*/        OPC_RecordChild1, // #0 = $Qn
/* 20841*/        OPC_MoveParent,
/* 20842*/        OPC_RecordChild1, // #1 = $Qm
/* 20843*/        OPC_CheckType, MVT::v8i16,
/* 20845*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 20847*/        OPC_EmitInteger, MVT::i32, 0, 
/* 20850*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20853*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 20859*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                      MVT::v8i16, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (and:{ *:[v8i16] } (xor:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v8i16] }:$Qn), MQPR:{ *:[v8i16] }:$Qm) - Complexity = 16
                  // Dst: (MVE_VBIC:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 20870*/      0, /*End of Scope*/
/* 20871*/    /*Scope*/ 53, /*->20925*/
/* 20872*/      OPC_RecordChild0, // #0 = $Qm
/* 20873*/      OPC_MoveChild1,
/* 20874*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 20877*/      OPC_MoveChild0,
/* 20878*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20881*/      OPC_MoveChild0,
/* 20882*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 20885*/      OPC_MoveChild0,
/* 20886*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 20889*/      OPC_MoveParent,
/* 20890*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 20892*/      OPC_CheckType, MVT::v16i8,
/* 20894*/      OPC_MoveParent,
/* 20895*/      OPC_MoveParent,
/* 20896*/      OPC_RecordChild1, // #1 = $Qn
/* 20897*/      OPC_MoveParent,
/* 20898*/      OPC_CheckType, MVT::v4i32,
/* 20900*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 20902*/      OPC_EmitInteger, MVT::i32, 0, 
/* 20905*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20908*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 20914*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                    MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (and:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v4i32] }:$Qn)) - Complexity = 16
                // Dst: (MVE_VBIC:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 20925*/    /*Scope*/ 106, /*->21032*/
/* 20926*/      OPC_MoveChild0,
/* 20927*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 20930*/      OPC_Scope, 49, /*->20981*/ // 2 children in Scope
/* 20932*/        OPC_RecordChild0, // #0 = $Qn
/* 20933*/        OPC_MoveChild1,
/* 20934*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20937*/        OPC_MoveChild0,
/* 20938*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 20941*/        OPC_MoveChild0,
/* 20942*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 20945*/        OPC_MoveParent,
/* 20946*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 20948*/        OPC_CheckType, MVT::v16i8,
/* 20950*/        OPC_MoveParent,
/* 20951*/        OPC_MoveParent,
/* 20952*/        OPC_MoveParent,
/* 20953*/        OPC_RecordChild1, // #1 = $Qm
/* 20954*/        OPC_CheckType, MVT::v4i32,
/* 20956*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 20958*/        OPC_EmitInteger, MVT::i32, 0, 
/* 20961*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 20964*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 20970*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                      MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qn, (bitconvert:{ *:[v4i32] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), MQPR:{ *:[v4i32] }:$Qm) - Complexity = 16
                  // Dst: (MVE_VBIC:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 20981*/      /*Scope*/ 49, /*->21031*/
/* 20982*/        OPC_MoveChild0,
/* 20983*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 20986*/        OPC_MoveChild0,
/* 20987*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 20990*/        OPC_MoveChild0,
/* 20991*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 20994*/        OPC_MoveParent,
/* 20995*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 20997*/        OPC_CheckType, MVT::v16i8,
/* 20999*/        OPC_MoveParent,
/* 21000*/        OPC_MoveParent,
/* 21001*/        OPC_RecordChild1, // #0 = $Qn
/* 21002*/        OPC_MoveParent,
/* 21003*/        OPC_RecordChild1, // #1 = $Qm
/* 21004*/        OPC_CheckType, MVT::v4i32,
/* 21006*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21008*/        OPC_EmitInteger, MVT::i32, 0, 
/* 21011*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21014*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 21020*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                      MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (and:{ *:[v4i32] } (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v4i32] }:$Qn), MQPR:{ *:[v4i32] }:$Qm) - Complexity = 16
                  // Dst: (MVE_VBIC:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 21031*/      0, /*End of Scope*/
/* 21032*/    /*Scope*/ 53, /*->21086*/
/* 21033*/      OPC_RecordChild0, // #0 = $Qm
/* 21034*/      OPC_MoveChild1,
/* 21035*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 21038*/      OPC_MoveChild0,
/* 21039*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 21042*/      OPC_MoveChild0,
/* 21043*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 21046*/      OPC_MoveChild0,
/* 21047*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 21050*/      OPC_MoveParent,
/* 21051*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 21053*/      OPC_CheckType, MVT::v16i8,
/* 21055*/      OPC_MoveParent,
/* 21056*/      OPC_MoveParent,
/* 21057*/      OPC_RecordChild1, // #1 = $Qn
/* 21058*/      OPC_MoveParent,
/* 21059*/      OPC_CheckType, MVT::v2i64,
/* 21061*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21063*/      OPC_EmitInteger, MVT::i32, 0, 
/* 21066*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21069*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 21075*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                    MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (and:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v2i64] }:$Qn)) - Complexity = 16
                // Dst: (MVE_VBIC:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
/* 21086*/    /*Scope*/ 106, /*->21193*/
/* 21087*/      OPC_MoveChild0,
/* 21088*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 21091*/      OPC_Scope, 49, /*->21142*/ // 2 children in Scope
/* 21093*/        OPC_RecordChild0, // #0 = $Qn
/* 21094*/        OPC_MoveChild1,
/* 21095*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 21098*/        OPC_MoveChild0,
/* 21099*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 21102*/        OPC_MoveChild0,
/* 21103*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 21106*/        OPC_MoveParent,
/* 21107*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 21109*/        OPC_CheckType, MVT::v16i8,
/* 21111*/        OPC_MoveParent,
/* 21112*/        OPC_MoveParent,
/* 21113*/        OPC_MoveParent,
/* 21114*/        OPC_RecordChild1, // #1 = $Qm
/* 21115*/        OPC_CheckType, MVT::v2i64,
/* 21117*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21119*/        OPC_EmitInteger, MVT::i32, 0, 
/* 21122*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21125*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 21131*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                      MVT::v2i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qn, (bitconvert:{ *:[v2i64] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)), MQPR:{ *:[v2i64] }:$Qm) - Complexity = 16
                  // Dst: (MVE_VBIC:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
/* 21142*/      /*Scope*/ 49, /*->21192*/
/* 21143*/        OPC_MoveChild0,
/* 21144*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 21147*/        OPC_MoveChild0,
/* 21148*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 21151*/        OPC_MoveChild0,
/* 21152*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 21155*/        OPC_MoveParent,
/* 21156*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 21158*/        OPC_CheckType, MVT::v16i8,
/* 21160*/        OPC_MoveParent,
/* 21161*/        OPC_MoveParent,
/* 21162*/        OPC_RecordChild1, // #0 = $Qn
/* 21163*/        OPC_MoveParent,
/* 21164*/        OPC_RecordChild1, // #1 = $Qm
/* 21165*/        OPC_CheckType, MVT::v2i64,
/* 21167*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21169*/        OPC_EmitInteger, MVT::i32, 0, 
/* 21172*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 21175*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 21181*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                      MVT::v2i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (and:{ *:[v2i64] } (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v2i64] }:$Qn), MQPR:{ *:[v2i64] }:$Qm) - Complexity = 16
                  // Dst: (MVE_VBIC:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
/* 21192*/      0, /*End of Scope*/
/* 21193*/    /*Scope*/ 58|128,5/*698*/, /*->21893*/
/* 21195*/      OPC_RecordChild0, // #0 = $p1
/* 21196*/      OPC_MoveChild1,
/* 21197*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VCMP),
/* 21200*/      OPC_RecordChild0, // #1 = $v1
/* 21201*/      OPC_Scope, 100|128,1/*228*/, /*->21432*/ // 3 children in Scope
/* 21204*/        OPC_CheckChild0Type, MVT::v16i8,
/* 21206*/        OPC_MoveChild1,
/* 21207*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 21210*/        OPC_RecordChild0, // #2 = $v2
/* 21211*/        OPC_CheckChild0Type, MVT::i32,
/* 21213*/        OPC_MoveParent,
/* 21214*/        OPC_Scope, 26, /*->21242*/ // 8 children in Scope
/* 21216*/          OPC_CheckChild2Integer, 0, 
/* 21218*/          OPC_CheckChild2Type, MVT::i32,
/* 21220*/          OPC_MoveParent,
/* 21221*/          OPC_CheckType, MVT::v16i1,
/* 21223*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21225*/          OPC_EmitInteger, MVT::i32, 0, 
/* 21228*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21231*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 0:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPi8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 21242*/        /*Scope*/ 26, /*->21269*/
/* 21243*/          OPC_CheckChild2Integer, 1, 
/* 21245*/          OPC_CheckChild2Type, MVT::i32,
/* 21247*/          OPC_MoveParent,
/* 21248*/          OPC_CheckType, MVT::v16i1,
/* 21250*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21252*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21255*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21258*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 1:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPi8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 21269*/        /*Scope*/ 26, /*->21296*/
/* 21270*/          OPC_CheckChild2Integer, 10, 
/* 21272*/          OPC_CheckChild2Type, MVT::i32,
/* 21274*/          OPC_MoveParent,
/* 21275*/          OPC_CheckType, MVT::v16i1,
/* 21277*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21279*/          OPC_EmitInteger, MVT::i32, 10, 
/* 21282*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21285*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 10:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 21296*/        /*Scope*/ 26, /*->21323*/
/* 21297*/          OPC_CheckChild2Integer, 11, 
/* 21299*/          OPC_CheckChild2Type, MVT::i32,
/* 21301*/          OPC_MoveParent,
/* 21302*/          OPC_CheckType, MVT::v16i1,
/* 21304*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21306*/          OPC_EmitInteger, MVT::i32, 11, 
/* 21309*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21312*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 11:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 21323*/        /*Scope*/ 26, /*->21350*/
/* 21324*/          OPC_CheckChild2Integer, 12, 
/* 21326*/          OPC_CheckChild2Type, MVT::i32,
/* 21328*/          OPC_MoveParent,
/* 21329*/          OPC_CheckType, MVT::v16i1,
/* 21331*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21333*/          OPC_EmitInteger, MVT::i32, 12, 
/* 21336*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21339*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 12:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 21350*/        /*Scope*/ 26, /*->21377*/
/* 21351*/          OPC_CheckChild2Integer, 13, 
/* 21353*/          OPC_CheckChild2Type, MVT::i32,
/* 21355*/          OPC_MoveParent,
/* 21356*/          OPC_CheckType, MVT::v16i1,
/* 21358*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21360*/          OPC_EmitInteger, MVT::i32, 13, 
/* 21363*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21366*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 13:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 21377*/        /*Scope*/ 26, /*->21404*/
/* 21378*/          OPC_CheckChild2Integer, 8, 
/* 21380*/          OPC_CheckChild2Type, MVT::i32,
/* 21382*/          OPC_MoveParent,
/* 21383*/          OPC_CheckType, MVT::v16i1,
/* 21385*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21387*/          OPC_EmitInteger, MVT::i32, 8, 
/* 21390*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21393*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 8:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPu8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 21404*/        /*Scope*/ 26, /*->21431*/
/* 21405*/          OPC_CheckChild2Integer, 2, 
/* 21407*/          OPC_CheckChild2Type, MVT::i32,
/* 21409*/          OPC_MoveParent,
/* 21410*/          OPC_CheckType, MVT::v16i1,
/* 21412*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21414*/          OPC_EmitInteger, MVT::i32, 2, 
/* 21417*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21420*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 2:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPu8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 21431*/        0, /*End of Scope*/
/* 21432*/      /*Scope*/ 100|128,1/*228*/, /*->21662*/
/* 21434*/        OPC_CheckChild0Type, MVT::v8i16,
/* 21436*/        OPC_MoveChild1,
/* 21437*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 21440*/        OPC_RecordChild0, // #2 = $v2
/* 21441*/        OPC_CheckChild0Type, MVT::i32,
/* 21443*/        OPC_MoveParent,
/* 21444*/        OPC_Scope, 26, /*->21472*/ // 8 children in Scope
/* 21446*/          OPC_CheckChild2Integer, 0, 
/* 21448*/          OPC_CheckChild2Type, MVT::i32,
/* 21450*/          OPC_MoveParent,
/* 21451*/          OPC_CheckType, MVT::v8i1,
/* 21453*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21455*/          OPC_EmitInteger, MVT::i32, 0, 
/* 21458*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21461*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 0:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPi16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 21472*/        /*Scope*/ 26, /*->21499*/
/* 21473*/          OPC_CheckChild2Integer, 1, 
/* 21475*/          OPC_CheckChild2Type, MVT::i32,
/* 21477*/          OPC_MoveParent,
/* 21478*/          OPC_CheckType, MVT::v8i1,
/* 21480*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21482*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21485*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21488*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 1:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPi16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 21499*/        /*Scope*/ 26, /*->21526*/
/* 21500*/          OPC_CheckChild2Integer, 10, 
/* 21502*/          OPC_CheckChild2Type, MVT::i32,
/* 21504*/          OPC_MoveParent,
/* 21505*/          OPC_CheckType, MVT::v8i1,
/* 21507*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21509*/          OPC_EmitInteger, MVT::i32, 10, 
/* 21512*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21515*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 10:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 21526*/        /*Scope*/ 26, /*->21553*/
/* 21527*/          OPC_CheckChild2Integer, 11, 
/* 21529*/          OPC_CheckChild2Type, MVT::i32,
/* 21531*/          OPC_MoveParent,
/* 21532*/          OPC_CheckType, MVT::v8i1,
/* 21534*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21536*/          OPC_EmitInteger, MVT::i32, 11, 
/* 21539*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21542*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 11:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 21553*/        /*Scope*/ 26, /*->21580*/
/* 21554*/          OPC_CheckChild2Integer, 12, 
/* 21556*/          OPC_CheckChild2Type, MVT::i32,
/* 21558*/          OPC_MoveParent,
/* 21559*/          OPC_CheckType, MVT::v8i1,
/* 21561*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21563*/          OPC_EmitInteger, MVT::i32, 12, 
/* 21566*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21569*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 12:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 21580*/        /*Scope*/ 26, /*->21607*/
/* 21581*/          OPC_CheckChild2Integer, 13, 
/* 21583*/          OPC_CheckChild2Type, MVT::i32,
/* 21585*/          OPC_MoveParent,
/* 21586*/          OPC_CheckType, MVT::v8i1,
/* 21588*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21590*/          OPC_EmitInteger, MVT::i32, 13, 
/* 21593*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21596*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 13:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 21607*/        /*Scope*/ 26, /*->21634*/
/* 21608*/          OPC_CheckChild2Integer, 8, 
/* 21610*/          OPC_CheckChild2Type, MVT::i32,
/* 21612*/          OPC_MoveParent,
/* 21613*/          OPC_CheckType, MVT::v8i1,
/* 21615*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21617*/          OPC_EmitInteger, MVT::i32, 8, 
/* 21620*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21623*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 8:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPu16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 21634*/        /*Scope*/ 26, /*->21661*/
/* 21635*/          OPC_CheckChild2Integer, 2, 
/* 21637*/          OPC_CheckChild2Type, MVT::i32,
/* 21639*/          OPC_MoveParent,
/* 21640*/          OPC_CheckType, MVT::v8i1,
/* 21642*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21644*/          OPC_EmitInteger, MVT::i32, 2, 
/* 21647*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21650*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 2:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPu16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 21661*/        0, /*End of Scope*/
/* 21662*/      /*Scope*/ 100|128,1/*228*/, /*->21892*/
/* 21664*/        OPC_CheckChild0Type, MVT::v4i32,
/* 21666*/        OPC_MoveChild1,
/* 21667*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 21670*/        OPC_RecordChild0, // #2 = $v2
/* 21671*/        OPC_CheckChild0Type, MVT::i32,
/* 21673*/        OPC_MoveParent,
/* 21674*/        OPC_Scope, 26, /*->21702*/ // 8 children in Scope
/* 21676*/          OPC_CheckChild2Integer, 0, 
/* 21678*/          OPC_CheckChild2Type, MVT::i32,
/* 21680*/          OPC_MoveParent,
/* 21681*/          OPC_CheckType, MVT::v4i1,
/* 21683*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21685*/          OPC_EmitInteger, MVT::i32, 0, 
/* 21688*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21691*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 0:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPi32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 21702*/        /*Scope*/ 26, /*->21729*/
/* 21703*/          OPC_CheckChild2Integer, 1, 
/* 21705*/          OPC_CheckChild2Type, MVT::i32,
/* 21707*/          OPC_MoveParent,
/* 21708*/          OPC_CheckType, MVT::v4i1,
/* 21710*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21712*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21715*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21718*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 1:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPi32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 21729*/        /*Scope*/ 26, /*->21756*/
/* 21730*/          OPC_CheckChild2Integer, 10, 
/* 21732*/          OPC_CheckChild2Type, MVT::i32,
/* 21734*/          OPC_MoveParent,
/* 21735*/          OPC_CheckType, MVT::v4i1,
/* 21737*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21739*/          OPC_EmitInteger, MVT::i32, 10, 
/* 21742*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21745*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 10:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 21756*/        /*Scope*/ 26, /*->21783*/
/* 21757*/          OPC_CheckChild2Integer, 11, 
/* 21759*/          OPC_CheckChild2Type, MVT::i32,
/* 21761*/          OPC_MoveParent,
/* 21762*/          OPC_CheckType, MVT::v4i1,
/* 21764*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21766*/          OPC_EmitInteger, MVT::i32, 11, 
/* 21769*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21772*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 11:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 21783*/        /*Scope*/ 26, /*->21810*/
/* 21784*/          OPC_CheckChild2Integer, 12, 
/* 21786*/          OPC_CheckChild2Type, MVT::i32,
/* 21788*/          OPC_MoveParent,
/* 21789*/          OPC_CheckType, MVT::v4i1,
/* 21791*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21793*/          OPC_EmitInteger, MVT::i32, 12, 
/* 21796*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21799*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 12:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 21810*/        /*Scope*/ 26, /*->21837*/
/* 21811*/          OPC_CheckChild2Integer, 13, 
/* 21813*/          OPC_CheckChild2Type, MVT::i32,
/* 21815*/          OPC_MoveParent,
/* 21816*/          OPC_CheckType, MVT::v4i1,
/* 21818*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21820*/          OPC_EmitInteger, MVT::i32, 13, 
/* 21823*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21826*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 13:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 21837*/        /*Scope*/ 26, /*->21864*/
/* 21838*/          OPC_CheckChild2Integer, 8, 
/* 21840*/          OPC_CheckChild2Type, MVT::i32,
/* 21842*/          OPC_MoveParent,
/* 21843*/          OPC_CheckType, MVT::v4i1,
/* 21845*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21847*/          OPC_EmitInteger, MVT::i32, 8, 
/* 21850*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21853*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 8:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPu32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 21864*/        /*Scope*/ 26, /*->21891*/
/* 21865*/          OPC_CheckChild2Integer, 2, 
/* 21867*/          OPC_CheckChild2Type, MVT::i32,
/* 21869*/          OPC_MoveParent,
/* 21870*/          OPC_CheckType, MVT::v4i1,
/* 21872*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21874*/          OPC_EmitInteger, MVT::i32, 2, 
/* 21877*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21880*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 2:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPu32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 21891*/        0, /*End of Scope*/
/* 21892*/      0, /*End of Scope*/
/* 21893*/    /*Scope*/ 81|128,5/*721*/, /*->22616*/
/* 21895*/      OPC_MoveChild0,
/* 21896*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VCMP),
/* 21899*/      OPC_RecordChild0, // #0 = $v1
/* 21900*/      OPC_Scope, 108|128,1/*236*/, /*->22139*/ // 3 children in Scope
/* 21903*/        OPC_CheckChild0Type, MVT::v16i8,
/* 21905*/        OPC_MoveChild1,
/* 21906*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 21909*/        OPC_RecordChild0, // #1 = $v2
/* 21910*/        OPC_CheckChild0Type, MVT::i32,
/* 21912*/        OPC_MoveParent,
/* 21913*/        OPC_Scope, 27, /*->21942*/ // 8 children in Scope
/* 21915*/          OPC_CheckChild2Integer, 0, 
/* 21917*/          OPC_CheckChild2Type, MVT::i32,
/* 21919*/          OPC_MoveParent,
/* 21920*/          OPC_RecordChild1, // #2 = $p1
/* 21921*/          OPC_CheckType, MVT::v16i1,
/* 21923*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21925*/          OPC_EmitInteger, MVT::i32, 0, 
/* 21928*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21931*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 0:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPi8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 21942*/        /*Scope*/ 27, /*->21970*/
/* 21943*/          OPC_CheckChild2Integer, 1, 
/* 21945*/          OPC_CheckChild2Type, MVT::i32,
/* 21947*/          OPC_MoveParent,
/* 21948*/          OPC_RecordChild1, // #2 = $p1
/* 21949*/          OPC_CheckType, MVT::v16i1,
/* 21951*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21953*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21956*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21959*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 1:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPi8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 21970*/        /*Scope*/ 27, /*->21998*/
/* 21971*/          OPC_CheckChild2Integer, 10, 
/* 21973*/          OPC_CheckChild2Type, MVT::i32,
/* 21975*/          OPC_MoveParent,
/* 21976*/          OPC_RecordChild1, // #2 = $p1
/* 21977*/          OPC_CheckType, MVT::v16i1,
/* 21979*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 21981*/          OPC_EmitInteger, MVT::i32, 10, 
/* 21984*/          OPC_EmitInteger, MVT::i32, 1, 
/* 21987*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 10:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 21998*/        /*Scope*/ 27, /*->22026*/
/* 21999*/          OPC_CheckChild2Integer, 11, 
/* 22001*/          OPC_CheckChild2Type, MVT::i32,
/* 22003*/          OPC_MoveParent,
/* 22004*/          OPC_RecordChild1, // #2 = $p1
/* 22005*/          OPC_CheckType, MVT::v16i1,
/* 22007*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22009*/          OPC_EmitInteger, MVT::i32, 11, 
/* 22012*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22015*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 11:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 22026*/        /*Scope*/ 27, /*->22054*/
/* 22027*/          OPC_CheckChild2Integer, 12, 
/* 22029*/          OPC_CheckChild2Type, MVT::i32,
/* 22031*/          OPC_MoveParent,
/* 22032*/          OPC_RecordChild1, // #2 = $p1
/* 22033*/          OPC_CheckType, MVT::v16i1,
/* 22035*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22037*/          OPC_EmitInteger, MVT::i32, 12, 
/* 22040*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22043*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 12:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 22054*/        /*Scope*/ 27, /*->22082*/
/* 22055*/          OPC_CheckChild2Integer, 13, 
/* 22057*/          OPC_CheckChild2Type, MVT::i32,
/* 22059*/          OPC_MoveParent,
/* 22060*/          OPC_RecordChild1, // #2 = $p1
/* 22061*/          OPC_CheckType, MVT::v16i1,
/* 22063*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22065*/          OPC_EmitInteger, MVT::i32, 13, 
/* 22068*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22071*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 13:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 22082*/        /*Scope*/ 27, /*->22110*/
/* 22083*/          OPC_CheckChild2Integer, 8, 
/* 22085*/          OPC_CheckChild2Type, MVT::i32,
/* 22087*/          OPC_MoveParent,
/* 22088*/          OPC_RecordChild1, // #2 = $p1
/* 22089*/          OPC_CheckType, MVT::v16i1,
/* 22091*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22093*/          OPC_EmitInteger, MVT::i32, 8, 
/* 22096*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22099*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 8:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPu8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 22110*/        /*Scope*/ 27, /*->22138*/
/* 22111*/          OPC_CheckChild2Integer, 2, 
/* 22113*/          OPC_CheckChild2Type, MVT::i32,
/* 22115*/          OPC_MoveParent,
/* 22116*/          OPC_RecordChild1, // #2 = $p1
/* 22117*/          OPC_CheckType, MVT::v16i1,
/* 22119*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22121*/          OPC_EmitInteger, MVT::i32, 2, 
/* 22124*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22127*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 2:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPu8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 22138*/        0, /*End of Scope*/
/* 22139*/      /*Scope*/ 108|128,1/*236*/, /*->22377*/
/* 22141*/        OPC_CheckChild0Type, MVT::v8i16,
/* 22143*/        OPC_MoveChild1,
/* 22144*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 22147*/        OPC_RecordChild0, // #1 = $v2
/* 22148*/        OPC_CheckChild0Type, MVT::i32,
/* 22150*/        OPC_MoveParent,
/* 22151*/        OPC_Scope, 27, /*->22180*/ // 8 children in Scope
/* 22153*/          OPC_CheckChild2Integer, 0, 
/* 22155*/          OPC_CheckChild2Type, MVT::i32,
/* 22157*/          OPC_MoveParent,
/* 22158*/          OPC_RecordChild1, // #2 = $p1
/* 22159*/          OPC_CheckType, MVT::v8i1,
/* 22161*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22163*/          OPC_EmitInteger, MVT::i32, 0, 
/* 22166*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22169*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 0:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPi16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 22180*/        /*Scope*/ 27, /*->22208*/
/* 22181*/          OPC_CheckChild2Integer, 1, 
/* 22183*/          OPC_CheckChild2Type, MVT::i32,
/* 22185*/          OPC_MoveParent,
/* 22186*/          OPC_RecordChild1, // #2 = $p1
/* 22187*/          OPC_CheckType, MVT::v8i1,
/* 22189*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22191*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22194*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22197*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 1:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPi16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 22208*/        /*Scope*/ 27, /*->22236*/
/* 22209*/          OPC_CheckChild2Integer, 10, 
/* 22211*/          OPC_CheckChild2Type, MVT::i32,
/* 22213*/          OPC_MoveParent,
/* 22214*/          OPC_RecordChild1, // #2 = $p1
/* 22215*/          OPC_CheckType, MVT::v8i1,
/* 22217*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22219*/          OPC_EmitInteger, MVT::i32, 10, 
/* 22222*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22225*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 10:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 22236*/        /*Scope*/ 27, /*->22264*/
/* 22237*/          OPC_CheckChild2Integer, 11, 
/* 22239*/          OPC_CheckChild2Type, MVT::i32,
/* 22241*/          OPC_MoveParent,
/* 22242*/          OPC_RecordChild1, // #2 = $p1
/* 22243*/          OPC_CheckType, MVT::v8i1,
/* 22245*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22247*/          OPC_EmitInteger, MVT::i32, 11, 
/* 22250*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22253*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 11:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 22264*/        /*Scope*/ 27, /*->22292*/
/* 22265*/          OPC_CheckChild2Integer, 12, 
/* 22267*/          OPC_CheckChild2Type, MVT::i32,
/* 22269*/          OPC_MoveParent,
/* 22270*/          OPC_RecordChild1, // #2 = $p1
/* 22271*/          OPC_CheckType, MVT::v8i1,
/* 22273*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22275*/          OPC_EmitInteger, MVT::i32, 12, 
/* 22278*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22281*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 12:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 22292*/        /*Scope*/ 27, /*->22320*/
/* 22293*/          OPC_CheckChild2Integer, 13, 
/* 22295*/          OPC_CheckChild2Type, MVT::i32,
/* 22297*/          OPC_MoveParent,
/* 22298*/          OPC_RecordChild1, // #2 = $p1
/* 22299*/          OPC_CheckType, MVT::v8i1,
/* 22301*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22303*/          OPC_EmitInteger, MVT::i32, 13, 
/* 22306*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22309*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 13:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 22320*/        /*Scope*/ 27, /*->22348*/
/* 22321*/          OPC_CheckChild2Integer, 8, 
/* 22323*/          OPC_CheckChild2Type, MVT::i32,
/* 22325*/          OPC_MoveParent,
/* 22326*/          OPC_RecordChild1, // #2 = $p1
/* 22327*/          OPC_CheckType, MVT::v8i1,
/* 22329*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22331*/          OPC_EmitInteger, MVT::i32, 8, 
/* 22334*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22337*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 8:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPu16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 22348*/        /*Scope*/ 27, /*->22376*/
/* 22349*/          OPC_CheckChild2Integer, 2, 
/* 22351*/          OPC_CheckChild2Type, MVT::i32,
/* 22353*/          OPC_MoveParent,
/* 22354*/          OPC_RecordChild1, // #2 = $p1
/* 22355*/          OPC_CheckType, MVT::v8i1,
/* 22357*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22359*/          OPC_EmitInteger, MVT::i32, 2, 
/* 22362*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22365*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 2:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPu16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 22376*/        0, /*End of Scope*/
/* 22377*/      /*Scope*/ 108|128,1/*236*/, /*->22615*/
/* 22379*/        OPC_CheckChild0Type, MVT::v4i32,
/* 22381*/        OPC_MoveChild1,
/* 22382*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 22385*/        OPC_RecordChild0, // #1 = $v2
/* 22386*/        OPC_CheckChild0Type, MVT::i32,
/* 22388*/        OPC_MoveParent,
/* 22389*/        OPC_Scope, 27, /*->22418*/ // 8 children in Scope
/* 22391*/          OPC_CheckChild2Integer, 0, 
/* 22393*/          OPC_CheckChild2Type, MVT::i32,
/* 22395*/          OPC_MoveParent,
/* 22396*/          OPC_RecordChild1, // #2 = $p1
/* 22397*/          OPC_CheckType, MVT::v4i1,
/* 22399*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22401*/          OPC_EmitInteger, MVT::i32, 0, 
/* 22404*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22407*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 0:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPi32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 22418*/        /*Scope*/ 27, /*->22446*/
/* 22419*/          OPC_CheckChild2Integer, 1, 
/* 22421*/          OPC_CheckChild2Type, MVT::i32,
/* 22423*/          OPC_MoveParent,
/* 22424*/          OPC_RecordChild1, // #2 = $p1
/* 22425*/          OPC_CheckType, MVT::v4i1,
/* 22427*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22429*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22432*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22435*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 1:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPi32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 22446*/        /*Scope*/ 27, /*->22474*/
/* 22447*/          OPC_CheckChild2Integer, 10, 
/* 22449*/          OPC_CheckChild2Type, MVT::i32,
/* 22451*/          OPC_MoveParent,
/* 22452*/          OPC_RecordChild1, // #2 = $p1
/* 22453*/          OPC_CheckType, MVT::v4i1,
/* 22455*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22457*/          OPC_EmitInteger, MVT::i32, 10, 
/* 22460*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22463*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 10:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 22474*/        /*Scope*/ 27, /*->22502*/
/* 22475*/          OPC_CheckChild2Integer, 11, 
/* 22477*/          OPC_CheckChild2Type, MVT::i32,
/* 22479*/          OPC_MoveParent,
/* 22480*/          OPC_RecordChild1, // #2 = $p1
/* 22481*/          OPC_CheckType, MVT::v4i1,
/* 22483*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22485*/          OPC_EmitInteger, MVT::i32, 11, 
/* 22488*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22491*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 11:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 22502*/        /*Scope*/ 27, /*->22530*/
/* 22503*/          OPC_CheckChild2Integer, 12, 
/* 22505*/          OPC_CheckChild2Type, MVT::i32,
/* 22507*/          OPC_MoveParent,
/* 22508*/          OPC_RecordChild1, // #2 = $p1
/* 22509*/          OPC_CheckType, MVT::v4i1,
/* 22511*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22513*/          OPC_EmitInteger, MVT::i32, 12, 
/* 22516*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22519*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 12:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 22530*/        /*Scope*/ 27, /*->22558*/
/* 22531*/          OPC_CheckChild2Integer, 13, 
/* 22533*/          OPC_CheckChild2Type, MVT::i32,
/* 22535*/          OPC_MoveParent,
/* 22536*/          OPC_RecordChild1, // #2 = $p1
/* 22537*/          OPC_CheckType, MVT::v4i1,
/* 22539*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22541*/          OPC_EmitInteger, MVT::i32, 13, 
/* 22544*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22547*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 13:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 22558*/        /*Scope*/ 27, /*->22586*/
/* 22559*/          OPC_CheckChild2Integer, 8, 
/* 22561*/          OPC_CheckChild2Type, MVT::i32,
/* 22563*/          OPC_MoveParent,
/* 22564*/          OPC_RecordChild1, // #2 = $p1
/* 22565*/          OPC_CheckType, MVT::v4i1,
/* 22567*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22569*/          OPC_EmitInteger, MVT::i32, 8, 
/* 22572*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22575*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 8:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPu32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 22586*/        /*Scope*/ 27, /*->22614*/
/* 22587*/          OPC_CheckChild2Integer, 2, 
/* 22589*/          OPC_CheckChild2Type, MVT::i32,
/* 22591*/          OPC_MoveParent,
/* 22592*/          OPC_RecordChild1, // #2 = $p1
/* 22593*/          OPC_CheckType, MVT::v4i1,
/* 22595*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 22597*/          OPC_EmitInteger, MVT::i32, 2, 
/* 22600*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22603*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                    // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 2:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPu32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 22614*/        0, /*End of Scope*/
/* 22615*/      0, /*End of Scope*/
/* 22616*/    /*Scope*/ 108|128,3/*492*/, /*->23110*/
/* 22618*/      OPC_RecordChild0, // #0 = $p1
/* 22619*/      OPC_MoveChild1,
/* 22620*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VCMP),
/* 22623*/      OPC_RecordChild0, // #1 = $v1
/* 22624*/      OPC_Scope, 112|128,1/*240*/, /*->22867*/ // 2 children in Scope
/* 22627*/        OPC_CheckChild0Type, MVT::v8f16,
/* 22629*/        OPC_MoveChild1,
/* 22630*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 22633*/        OPC_RecordChild0, // #2 = $v2
/* 22634*/        OPC_CheckChild0Type, MVT::f16,
/* 22636*/        OPC_MoveParent,
/* 22637*/        OPC_Scope, 37, /*->22676*/ // 6 children in Scope
/* 22639*/          OPC_CheckChild2Integer, 0, 
/* 22641*/          OPC_CheckChild2Type, MVT::i32,
/* 22643*/          OPC_MoveParent,
/* 22644*/          OPC_CheckType, MVT::v8i1,
/* 22646*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 22648*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 22651*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22659*/          OPC_EmitInteger, MVT::i32, 0, 
/* 22662*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22665*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 1, 4, 5, 6, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 0:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 22676*/        /*Scope*/ 37, /*->22714*/
/* 22677*/          OPC_CheckChild2Integer, 1, 
/* 22679*/          OPC_CheckChild2Type, MVT::i32,
/* 22681*/          OPC_MoveParent,
/* 22682*/          OPC_CheckType, MVT::v8i1,
/* 22684*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 22686*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 22689*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22697*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22700*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22703*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 1, 4, 5, 6, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 1:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 22714*/        /*Scope*/ 37, /*->22752*/
/* 22715*/          OPC_CheckChild2Integer, 10, 
/* 22717*/          OPC_CheckChild2Type, MVT::i32,
/* 22719*/          OPC_MoveParent,
/* 22720*/          OPC_CheckType, MVT::v8i1,
/* 22722*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 22724*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 22727*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22735*/          OPC_EmitInteger, MVT::i32, 10, 
/* 22738*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22741*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 1, 4, 5, 6, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 10:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 22752*/        /*Scope*/ 37, /*->22790*/
/* 22753*/          OPC_CheckChild2Integer, 11, 
/* 22755*/          OPC_CheckChild2Type, MVT::i32,
/* 22757*/          OPC_MoveParent,
/* 22758*/          OPC_CheckType, MVT::v8i1,
/* 22760*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 22762*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 22765*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22773*/          OPC_EmitInteger, MVT::i32, 11, 
/* 22776*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22779*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 1, 4, 5, 6, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 11:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 22790*/        /*Scope*/ 37, /*->22828*/
/* 22791*/          OPC_CheckChild2Integer, 12, 
/* 22793*/          OPC_CheckChild2Type, MVT::i32,
/* 22795*/          OPC_MoveParent,
/* 22796*/          OPC_CheckType, MVT::v8i1,
/* 22798*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 22800*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 22803*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22811*/          OPC_EmitInteger, MVT::i32, 12, 
/* 22814*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22817*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 1, 4, 5, 6, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 12:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 22828*/        /*Scope*/ 37, /*->22866*/
/* 22829*/          OPC_CheckChild2Integer, 13, 
/* 22831*/          OPC_CheckChild2Type, MVT::i32,
/* 22833*/          OPC_MoveParent,
/* 22834*/          OPC_CheckType, MVT::v8i1,
/* 22836*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 22838*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 22841*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22849*/          OPC_EmitInteger, MVT::i32, 13, 
/* 22852*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22855*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 1, 4, 5, 6, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 13:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 22866*/        0, /*End of Scope*/
/* 22867*/      /*Scope*/ 112|128,1/*240*/, /*->23109*/
/* 22869*/        OPC_CheckChild0Type, MVT::v4f32,
/* 22871*/        OPC_MoveChild1,
/* 22872*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 22875*/        OPC_RecordChild0, // #2 = $v2
/* 22876*/        OPC_CheckChild0Type, MVT::f32,
/* 22878*/        OPC_MoveParent,
/* 22879*/        OPC_Scope, 37, /*->22918*/ // 6 children in Scope
/* 22881*/          OPC_CheckChild2Integer, 0, 
/* 22883*/          OPC_CheckChild2Type, MVT::i32,
/* 22885*/          OPC_MoveParent,
/* 22886*/          OPC_CheckType, MVT::v4i1,
/* 22888*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 22890*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 22893*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22901*/          OPC_EmitInteger, MVT::i32, 0, 
/* 22904*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22907*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 1, 4, 5, 6, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 0:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 22918*/        /*Scope*/ 37, /*->22956*/
/* 22919*/          OPC_CheckChild2Integer, 1, 
/* 22921*/          OPC_CheckChild2Type, MVT::i32,
/* 22923*/          OPC_MoveParent,
/* 22924*/          OPC_CheckType, MVT::v4i1,
/* 22926*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 22928*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 22931*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22939*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22942*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22945*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 1, 4, 5, 6, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 1:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 22956*/        /*Scope*/ 37, /*->22994*/
/* 22957*/          OPC_CheckChild2Integer, 10, 
/* 22959*/          OPC_CheckChild2Type, MVT::i32,
/* 22961*/          OPC_MoveParent,
/* 22962*/          OPC_CheckType, MVT::v4i1,
/* 22964*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 22966*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 22969*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 22977*/          OPC_EmitInteger, MVT::i32, 10, 
/* 22980*/          OPC_EmitInteger, MVT::i32, 1, 
/* 22983*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 1, 4, 5, 6, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 10:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 22994*/        /*Scope*/ 37, /*->23032*/
/* 22995*/          OPC_CheckChild2Integer, 11, 
/* 22997*/          OPC_CheckChild2Type, MVT::i32,
/* 22999*/          OPC_MoveParent,
/* 23000*/          OPC_CheckType, MVT::v4i1,
/* 23002*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23004*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23007*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23015*/          OPC_EmitInteger, MVT::i32, 11, 
/* 23018*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23021*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 1, 4, 5, 6, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 11:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 23032*/        /*Scope*/ 37, /*->23070*/
/* 23033*/          OPC_CheckChild2Integer, 12, 
/* 23035*/          OPC_CheckChild2Type, MVT::i32,
/* 23037*/          OPC_MoveParent,
/* 23038*/          OPC_CheckType, MVT::v4i1,
/* 23040*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23042*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23045*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23053*/          OPC_EmitInteger, MVT::i32, 12, 
/* 23056*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23059*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 1, 4, 5, 6, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 12:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 23070*/        /*Scope*/ 37, /*->23108*/
/* 23071*/          OPC_CheckChild2Integer, 13, 
/* 23073*/          OPC_CheckChild2Type, MVT::i32,
/* 23075*/          OPC_MoveParent,
/* 23076*/          OPC_CheckType, MVT::v4i1,
/* 23078*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23080*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23083*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 2, 3,  // Results = #4
/* 23091*/          OPC_EmitInteger, MVT::i32, 13, 
/* 23094*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23097*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 1, 4, 5, 6, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 13:{ *:[i32] })) - Complexity = 14
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 23108*/        0, /*End of Scope*/
/* 23109*/      0, /*End of Scope*/
/* 23110*/    /*Scope*/ 119|128,3/*503*/, /*->23615*/
/* 23112*/      OPC_MoveChild0,
/* 23113*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VCMP),
/* 23116*/      OPC_RecordChild0, // #0 = $v1
/* 23117*/      OPC_Scope, 118|128,1/*246*/, /*->23366*/ // 2 children in Scope
/* 23120*/        OPC_CheckChild0Type, MVT::v8f16,
/* 23122*/        OPC_MoveChild1,
/* 23123*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 23126*/        OPC_RecordChild0, // #1 = $v2
/* 23127*/        OPC_CheckChild0Type, MVT::f16,
/* 23129*/        OPC_MoveParent,
/* 23130*/        OPC_Scope, 38, /*->23170*/ // 6 children in Scope
/* 23132*/          OPC_CheckChild2Integer, 0, 
/* 23134*/          OPC_CheckChild2Type, MVT::i32,
/* 23136*/          OPC_MoveParent,
/* 23137*/          OPC_RecordChild1, // #2 = $p1
/* 23138*/          OPC_CheckType, MVT::v8i1,
/* 23140*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23142*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23145*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 23153*/          OPC_EmitInteger, MVT::i32, 0, 
/* 23156*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23159*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 4, 5, 6, 2, 
                    // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 0:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 23170*/        /*Scope*/ 38, /*->23209*/
/* 23171*/          OPC_CheckChild2Integer, 1, 
/* 23173*/          OPC_CheckChild2Type, MVT::i32,
/* 23175*/          OPC_MoveParent,
/* 23176*/          OPC_RecordChild1, // #2 = $p1
/* 23177*/          OPC_CheckType, MVT::v8i1,
/* 23179*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23181*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23184*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 23192*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23195*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23198*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 4, 5, 6, 2, 
                    // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 1:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 23209*/        /*Scope*/ 38, /*->23248*/
/* 23210*/          OPC_CheckChild2Integer, 10, 
/* 23212*/          OPC_CheckChild2Type, MVT::i32,
/* 23214*/          OPC_MoveParent,
/* 23215*/          OPC_RecordChild1, // #2 = $p1
/* 23216*/          OPC_CheckType, MVT::v8i1,
/* 23218*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23220*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23223*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 23231*/          OPC_EmitInteger, MVT::i32, 10, 
/* 23234*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23237*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 4, 5, 6, 2, 
                    // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 10:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 23248*/        /*Scope*/ 38, /*->23287*/
/* 23249*/          OPC_CheckChild2Integer, 11, 
/* 23251*/          OPC_CheckChild2Type, MVT::i32,
/* 23253*/          OPC_MoveParent,
/* 23254*/          OPC_RecordChild1, // #2 = $p1
/* 23255*/          OPC_CheckType, MVT::v8i1,
/* 23257*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23259*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23262*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 23270*/          OPC_EmitInteger, MVT::i32, 11, 
/* 23273*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23276*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 4, 5, 6, 2, 
                    // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 11:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 23287*/        /*Scope*/ 38, /*->23326*/
/* 23288*/          OPC_CheckChild2Integer, 12, 
/* 23290*/          OPC_CheckChild2Type, MVT::i32,
/* 23292*/          OPC_MoveParent,
/* 23293*/          OPC_RecordChild1, // #2 = $p1
/* 23294*/          OPC_CheckType, MVT::v8i1,
/* 23296*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23298*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23301*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 23309*/          OPC_EmitInteger, MVT::i32, 12, 
/* 23312*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23315*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 4, 5, 6, 2, 
                    // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 12:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 23326*/        /*Scope*/ 38, /*->23365*/
/* 23327*/          OPC_CheckChild2Integer, 13, 
/* 23329*/          OPC_CheckChild2Type, MVT::i32,
/* 23331*/          OPC_MoveParent,
/* 23332*/          OPC_RecordChild1, // #2 = $p1
/* 23333*/          OPC_CheckType, MVT::v8i1,
/* 23335*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23337*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23340*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 23348*/          OPC_EmitInteger, MVT::i32, 13, 
/* 23351*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23354*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 4, 5, 6, 2, 
                    // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 13:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 23365*/        0, /*End of Scope*/
/* 23366*/      /*Scope*/ 118|128,1/*246*/, /*->23614*/
/* 23368*/        OPC_CheckChild0Type, MVT::v4f32,
/* 23370*/        OPC_MoveChild1,
/* 23371*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 23374*/        OPC_RecordChild0, // #1 = $v2
/* 23375*/        OPC_CheckChild0Type, MVT::f32,
/* 23377*/        OPC_MoveParent,
/* 23378*/        OPC_Scope, 38, /*->23418*/ // 6 children in Scope
/* 23380*/          OPC_CheckChild2Integer, 0, 
/* 23382*/          OPC_CheckChild2Type, MVT::i32,
/* 23384*/          OPC_MoveParent,
/* 23385*/          OPC_RecordChild1, // #2 = $p1
/* 23386*/          OPC_CheckType, MVT::v4i1,
/* 23388*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23390*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23393*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 23401*/          OPC_EmitInteger, MVT::i32, 0, 
/* 23404*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23407*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 4, 5, 6, 2, 
                    // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 0:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 23418*/        /*Scope*/ 38, /*->23457*/
/* 23419*/          OPC_CheckChild2Integer, 1, 
/* 23421*/          OPC_CheckChild2Type, MVT::i32,
/* 23423*/          OPC_MoveParent,
/* 23424*/          OPC_RecordChild1, // #2 = $p1
/* 23425*/          OPC_CheckType, MVT::v4i1,
/* 23427*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23429*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23432*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 23440*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23443*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23446*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 4, 5, 6, 2, 
                    // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 1:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 23457*/        /*Scope*/ 38, /*->23496*/
/* 23458*/          OPC_CheckChild2Integer, 10, 
/* 23460*/          OPC_CheckChild2Type, MVT::i32,
/* 23462*/          OPC_MoveParent,
/* 23463*/          OPC_RecordChild1, // #2 = $p1
/* 23464*/          OPC_CheckType, MVT::v4i1,
/* 23466*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23468*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23471*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 23479*/          OPC_EmitInteger, MVT::i32, 10, 
/* 23482*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23485*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 4, 5, 6, 2, 
                    // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 10:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 23496*/        /*Scope*/ 38, /*->23535*/
/* 23497*/          OPC_CheckChild2Integer, 11, 
/* 23499*/          OPC_CheckChild2Type, MVT::i32,
/* 23501*/          OPC_MoveParent,
/* 23502*/          OPC_RecordChild1, // #2 = $p1
/* 23503*/          OPC_CheckType, MVT::v4i1,
/* 23505*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23507*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23510*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 23518*/          OPC_EmitInteger, MVT::i32, 11, 
/* 23521*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23524*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 4, 5, 6, 2, 
                    // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 11:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 23535*/        /*Scope*/ 38, /*->23574*/
/* 23536*/          OPC_CheckChild2Integer, 12, 
/* 23538*/          OPC_CheckChild2Type, MVT::i32,
/* 23540*/          OPC_MoveParent,
/* 23541*/          OPC_RecordChild1, // #2 = $p1
/* 23542*/          OPC_CheckType, MVT::v4i1,
/* 23544*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23546*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23549*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 23557*/          OPC_EmitInteger, MVT::i32, 12, 
/* 23560*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23563*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 4, 5, 6, 2, 
                    // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 12:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 23574*/        /*Scope*/ 38, /*->23613*/
/* 23575*/          OPC_CheckChild2Integer, 13, 
/* 23577*/          OPC_CheckChild2Type, MVT::i32,
/* 23579*/          OPC_MoveParent,
/* 23580*/          OPC_RecordChild1, // #2 = $p1
/* 23581*/          OPC_CheckType, MVT::v4i1,
/* 23583*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 23585*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 23588*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/* 23596*/          OPC_EmitInteger, MVT::i32, 13, 
/* 23599*/          OPC_EmitInteger, MVT::i32, 1, 
/* 23602*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 4, 5, 6, 2, 
                    // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 13:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 14
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 23613*/        0, /*End of Scope*/
/* 23614*/      0, /*End of Scope*/
/* 23615*/    /*Scope*/ 91, /*->23707*/
/* 23616*/      OPC_RecordChild0, // #0 = $Qm
/* 23617*/      OPC_MoveChild1,
/* 23618*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 23621*/      OPC_Scope, 41, /*->23664*/ // 2 children in Scope
/* 23623*/        OPC_RecordChild0, // #1 = $Qn
/* 23624*/        OPC_MoveChild1,
/* 23625*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 23628*/        OPC_MoveChild0,
/* 23629*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 23632*/        OPC_MoveParent,
/* 23633*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 23635*/        OPC_MoveParent,
/* 23636*/        OPC_MoveParent,
/* 23637*/        OPC_CheckType, MVT::v16i8,
/* 23639*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 23641*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23644*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23647*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 23653*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (and:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, (xor:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qn, (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)) - Complexity = 13
                  // Dst: (MVE_VBIC:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 23664*/      /*Scope*/ 41, /*->23706*/
/* 23665*/        OPC_MoveChild0,
/* 23666*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 23669*/        OPC_MoveChild0,
/* 23670*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 23673*/        OPC_MoveParent,
/* 23674*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 23676*/        OPC_MoveParent,
/* 23677*/        OPC_RecordChild1, // #1 = $Qn
/* 23678*/        OPC_MoveParent,
/* 23679*/        OPC_CheckType, MVT::v16i8,
/* 23681*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 23683*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23686*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23689*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 23695*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (and:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, (xor:{ *:[v16i8] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>, MQPR:{ *:[v16i8] }:$Qn)) - Complexity = 13
                  // Dst: (MVE_VBIC:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 23706*/      0, /*End of Scope*/
/* 23707*/    /*Scope*/ 92, /*->23800*/
/* 23708*/      OPC_MoveChild0,
/* 23709*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 23712*/      OPC_Scope, 42, /*->23756*/ // 2 children in Scope
/* 23714*/        OPC_RecordChild0, // #0 = $Qn
/* 23715*/        OPC_MoveChild1,
/* 23716*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 23719*/        OPC_MoveChild0,
/* 23720*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 23723*/        OPC_MoveParent,
/* 23724*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 23726*/        OPC_MoveParent,
/* 23727*/        OPC_MoveParent,
/* 23728*/        OPC_RecordChild1, // #1 = $Qm
/* 23729*/        OPC_CheckType, MVT::v16i8,
/* 23731*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 23733*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23736*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23739*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 23745*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                      MVT::v16i8, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qn, (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v16i8] }:$Qm) - Complexity = 13
                  // Dst: (MVE_VBIC:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 23756*/      /*Scope*/ 42, /*->23799*/
/* 23757*/        OPC_MoveChild0,
/* 23758*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 23761*/        OPC_MoveChild0,
/* 23762*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 23765*/        OPC_MoveParent,
/* 23766*/        OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 23768*/        OPC_MoveParent,
/* 23769*/        OPC_RecordChild1, // #0 = $Qn
/* 23770*/        OPC_MoveParent,
/* 23771*/        OPC_RecordChild1, // #1 = $Qm
/* 23772*/        OPC_CheckType, MVT::v16i8,
/* 23774*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 23776*/        OPC_EmitInteger, MVT::i32, 0, 
/* 23779*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23782*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 23788*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                      MVT::v16i8, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (and:{ *:[v16i8] } (xor:{ *:[v16i8] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>, MQPR:{ *:[v16i8] }:$Qn), MQPR:{ *:[v16i8] }:$Qm) - Complexity = 13
                  // Dst: (MVE_VBIC:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 23799*/      0, /*End of Scope*/
/* 23800*/    /*Scope*/ 26|128,17/*2202*/, /*->26004*/
/* 23802*/      OPC_RecordChild0, // #0 = $src
/* 23803*/      OPC_MoveChild1,
/* 23804*/      OPC_SwitchOpcode /*3 cases */, 64, TARGET_VAL(ARMISD::VMOVIMM),// ->23872
/* 23808*/        OPC_Scope, 30, /*->23840*/ // 2 children in Scope
/* 23810*/          OPC_CheckChild0Integer, 127|128,25/*3327*/, 
/* 23813*/          OPC_MoveParent,
/* 23814*/          OPC_CheckType, MVT::v4i32,
/* 23816*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 23818*/          OPC_EmitInteger, MVT::i32, 0, 
/* 23821*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23824*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 23830*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVLu16bh), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (ARMvmovImm:{ *:[v4i32] } 3327:{ *:[i32] })) - Complexity = 11
                    // Dst: (MVE_VMOVLu16bh:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src)
/* 23840*/        /*Scope*/ 30, /*->23871*/
/* 23841*/          OPC_CheckChild0Integer, 127|128,17/*2303*/, 
/* 23844*/          OPC_MoveParent,
/* 23845*/          OPC_CheckType, MVT::v8i16,
/* 23847*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 23849*/          OPC_EmitInteger, MVT::i32, 0, 
/* 23852*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 23855*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 23861*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVLu8bh), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (ARMvmovImm:{ *:[v8i16] } 2303:{ *:[i32] })) - Complexity = 11
                    // Dst: (MVE_VMOVLu8bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src)
/* 23871*/        0, /*End of Scope*/
/* 23872*/      /*SwitchOpcode*/ 89|128,8/*1113*/, TARGET_VAL(ARMISD::VCMPZ),// ->24989
/* 23876*/        OPC_RecordChild0, // #1 = $v1
/* 23877*/        OPC_Scope, 116|128,1/*244*/, /*->24124*/ // 5 children in Scope
/* 23880*/          OPC_CheckChild0Type, MVT::v16i8,
/* 23882*/          OPC_Scope, 29, /*->23913*/ // 8 children in Scope
/* 23884*/            OPC_CheckChild1Integer, 0, 
/* 23886*/            OPC_CheckChild1Type, MVT::i32,
/* 23888*/            OPC_MoveParent,
/* 23889*/            OPC_CheckType, MVT::v16i1,
/* 23891*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 23893*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 23896*/            OPC_EmitInteger, MVT::i32, 0, 
/* 23899*/            OPC_EmitInteger, MVT::i32, 1, 
/* 23902*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 0:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPi8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 23913*/          /*Scope*/ 29, /*->23943*/
/* 23914*/            OPC_CheckChild1Integer, 1, 
/* 23916*/            OPC_CheckChild1Type, MVT::i32,
/* 23918*/            OPC_MoveParent,
/* 23919*/            OPC_CheckType, MVT::v16i1,
/* 23921*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 23923*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 23926*/            OPC_EmitInteger, MVT::i32, 1, 
/* 23929*/            OPC_EmitInteger, MVT::i32, 1, 
/* 23932*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 1:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPi8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 23943*/          /*Scope*/ 29, /*->23973*/
/* 23944*/            OPC_CheckChild1Integer, 10, 
/* 23946*/            OPC_CheckChild1Type, MVT::i32,
/* 23948*/            OPC_MoveParent,
/* 23949*/            OPC_CheckType, MVT::v16i1,
/* 23951*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 23953*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 23956*/            OPC_EmitInteger, MVT::i32, 10, 
/* 23959*/            OPC_EmitInteger, MVT::i32, 1, 
/* 23962*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 10:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 23973*/          /*Scope*/ 29, /*->24003*/
/* 23974*/            OPC_CheckChild1Integer, 11, 
/* 23976*/            OPC_CheckChild1Type, MVT::i32,
/* 23978*/            OPC_MoveParent,
/* 23979*/            OPC_CheckType, MVT::v16i1,
/* 23981*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 23983*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 23986*/            OPC_EmitInteger, MVT::i32, 11, 
/* 23989*/            OPC_EmitInteger, MVT::i32, 1, 
/* 23992*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 11:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 24003*/          /*Scope*/ 29, /*->24033*/
/* 24004*/            OPC_CheckChild1Integer, 12, 
/* 24006*/            OPC_CheckChild1Type, MVT::i32,
/* 24008*/            OPC_MoveParent,
/* 24009*/            OPC_CheckType, MVT::v16i1,
/* 24011*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24013*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24016*/            OPC_EmitInteger, MVT::i32, 12, 
/* 24019*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24022*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 12:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 24033*/          /*Scope*/ 29, /*->24063*/
/* 24034*/            OPC_CheckChild1Integer, 13, 
/* 24036*/            OPC_CheckChild1Type, MVT::i32,
/* 24038*/            OPC_MoveParent,
/* 24039*/            OPC_CheckType, MVT::v16i1,
/* 24041*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24043*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24046*/            OPC_EmitInteger, MVT::i32, 13, 
/* 24049*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24052*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 13:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 24063*/          /*Scope*/ 29, /*->24093*/
/* 24064*/            OPC_CheckChild1Integer, 8, 
/* 24066*/            OPC_CheckChild1Type, MVT::i32,
/* 24068*/            OPC_MoveParent,
/* 24069*/            OPC_CheckType, MVT::v16i1,
/* 24071*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24073*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24076*/            OPC_EmitInteger, MVT::i32, 8, 
/* 24079*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24082*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 8:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPu8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 24093*/          /*Scope*/ 29, /*->24123*/
/* 24094*/            OPC_CheckChild1Integer, 2, 
/* 24096*/            OPC_CheckChild1Type, MVT::i32,
/* 24098*/            OPC_MoveParent,
/* 24099*/            OPC_CheckType, MVT::v16i1,
/* 24101*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24103*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24106*/            OPC_EmitInteger, MVT::i32, 2, 
/* 24109*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24112*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 2:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPu8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 24123*/          0, /*End of Scope*/
/* 24124*/        /*Scope*/ 116|128,1/*244*/, /*->24370*/
/* 24126*/          OPC_CheckChild0Type, MVT::v8i16,
/* 24128*/          OPC_Scope, 29, /*->24159*/ // 8 children in Scope
/* 24130*/            OPC_CheckChild1Integer, 0, 
/* 24132*/            OPC_CheckChild1Type, MVT::i32,
/* 24134*/            OPC_MoveParent,
/* 24135*/            OPC_CheckType, MVT::v8i1,
/* 24137*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24139*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24142*/            OPC_EmitInteger, MVT::i32, 0, 
/* 24145*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24148*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 0:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPi16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 24159*/          /*Scope*/ 29, /*->24189*/
/* 24160*/            OPC_CheckChild1Integer, 1, 
/* 24162*/            OPC_CheckChild1Type, MVT::i32,
/* 24164*/            OPC_MoveParent,
/* 24165*/            OPC_CheckType, MVT::v8i1,
/* 24167*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24169*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24172*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24175*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24178*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 1:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPi16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 24189*/          /*Scope*/ 29, /*->24219*/
/* 24190*/            OPC_CheckChild1Integer, 10, 
/* 24192*/            OPC_CheckChild1Type, MVT::i32,
/* 24194*/            OPC_MoveParent,
/* 24195*/            OPC_CheckType, MVT::v8i1,
/* 24197*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24199*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24202*/            OPC_EmitInteger, MVT::i32, 10, 
/* 24205*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24208*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 10:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 24219*/          /*Scope*/ 29, /*->24249*/
/* 24220*/            OPC_CheckChild1Integer, 11, 
/* 24222*/            OPC_CheckChild1Type, MVT::i32,
/* 24224*/            OPC_MoveParent,
/* 24225*/            OPC_CheckType, MVT::v8i1,
/* 24227*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24229*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24232*/            OPC_EmitInteger, MVT::i32, 11, 
/* 24235*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24238*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 11:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 24249*/          /*Scope*/ 29, /*->24279*/
/* 24250*/            OPC_CheckChild1Integer, 12, 
/* 24252*/            OPC_CheckChild1Type, MVT::i32,
/* 24254*/            OPC_MoveParent,
/* 24255*/            OPC_CheckType, MVT::v8i1,
/* 24257*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24259*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24262*/            OPC_EmitInteger, MVT::i32, 12, 
/* 24265*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24268*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 12:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 24279*/          /*Scope*/ 29, /*->24309*/
/* 24280*/            OPC_CheckChild1Integer, 13, 
/* 24282*/            OPC_CheckChild1Type, MVT::i32,
/* 24284*/            OPC_MoveParent,
/* 24285*/            OPC_CheckType, MVT::v8i1,
/* 24287*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24289*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24292*/            OPC_EmitInteger, MVT::i32, 13, 
/* 24295*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24298*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 13:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 24309*/          /*Scope*/ 29, /*->24339*/
/* 24310*/            OPC_CheckChild1Integer, 8, 
/* 24312*/            OPC_CheckChild1Type, MVT::i32,
/* 24314*/            OPC_MoveParent,
/* 24315*/            OPC_CheckType, MVT::v8i1,
/* 24317*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24319*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24322*/            OPC_EmitInteger, MVT::i32, 8, 
/* 24325*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24328*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 8:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPu16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 24339*/          /*Scope*/ 29, /*->24369*/
/* 24340*/            OPC_CheckChild1Integer, 2, 
/* 24342*/            OPC_CheckChild1Type, MVT::i32,
/* 24344*/            OPC_MoveParent,
/* 24345*/            OPC_CheckType, MVT::v8i1,
/* 24347*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24349*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24352*/            OPC_EmitInteger, MVT::i32, 2, 
/* 24355*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24358*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 2:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPu16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 24369*/          0, /*End of Scope*/
/* 24370*/        /*Scope*/ 116|128,1/*244*/, /*->24616*/
/* 24372*/          OPC_CheckChild0Type, MVT::v4i32,
/* 24374*/          OPC_Scope, 29, /*->24405*/ // 8 children in Scope
/* 24376*/            OPC_CheckChild1Integer, 0, 
/* 24378*/            OPC_CheckChild1Type, MVT::i32,
/* 24380*/            OPC_MoveParent,
/* 24381*/            OPC_CheckType, MVT::v4i1,
/* 24383*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24385*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24388*/            OPC_EmitInteger, MVT::i32, 0, 
/* 24391*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24394*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 0:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPi32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 24405*/          /*Scope*/ 29, /*->24435*/
/* 24406*/            OPC_CheckChild1Integer, 1, 
/* 24408*/            OPC_CheckChild1Type, MVT::i32,
/* 24410*/            OPC_MoveParent,
/* 24411*/            OPC_CheckType, MVT::v4i1,
/* 24413*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24415*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24418*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24421*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24424*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 1:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPi32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 24435*/          /*Scope*/ 29, /*->24465*/
/* 24436*/            OPC_CheckChild1Integer, 10, 
/* 24438*/            OPC_CheckChild1Type, MVT::i32,
/* 24440*/            OPC_MoveParent,
/* 24441*/            OPC_CheckType, MVT::v4i1,
/* 24443*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24445*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24448*/            OPC_EmitInteger, MVT::i32, 10, 
/* 24451*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24454*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 10:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 24465*/          /*Scope*/ 29, /*->24495*/
/* 24466*/            OPC_CheckChild1Integer, 11, 
/* 24468*/            OPC_CheckChild1Type, MVT::i32,
/* 24470*/            OPC_MoveParent,
/* 24471*/            OPC_CheckType, MVT::v4i1,
/* 24473*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24475*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24478*/            OPC_EmitInteger, MVT::i32, 11, 
/* 24481*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24484*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 11:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 24495*/          /*Scope*/ 29, /*->24525*/
/* 24496*/            OPC_CheckChild1Integer, 12, 
/* 24498*/            OPC_CheckChild1Type, MVT::i32,
/* 24500*/            OPC_MoveParent,
/* 24501*/            OPC_CheckType, MVT::v4i1,
/* 24503*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24505*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24508*/            OPC_EmitInteger, MVT::i32, 12, 
/* 24511*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24514*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 12:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 24525*/          /*Scope*/ 29, /*->24555*/
/* 24526*/            OPC_CheckChild1Integer, 13, 
/* 24528*/            OPC_CheckChild1Type, MVT::i32,
/* 24530*/            OPC_MoveParent,
/* 24531*/            OPC_CheckType, MVT::v4i1,
/* 24533*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24535*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24538*/            OPC_EmitInteger, MVT::i32, 13, 
/* 24541*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24544*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 13:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 24555*/          /*Scope*/ 29, /*->24585*/
/* 24556*/            OPC_CheckChild1Integer, 8, 
/* 24558*/            OPC_CheckChild1Type, MVT::i32,
/* 24560*/            OPC_MoveParent,
/* 24561*/            OPC_CheckType, MVT::v4i1,
/* 24563*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24565*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24568*/            OPC_EmitInteger, MVT::i32, 8, 
/* 24571*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24574*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 8:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPu32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 24585*/          /*Scope*/ 29, /*->24615*/
/* 24586*/            OPC_CheckChild1Integer, 2, 
/* 24588*/            OPC_CheckChild1Type, MVT::i32,
/* 24590*/            OPC_MoveParent,
/* 24591*/            OPC_CheckType, MVT::v4i1,
/* 24593*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 24595*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24598*/            OPC_EmitInteger, MVT::i32, 2, 
/* 24601*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24604*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 2:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPu32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 24615*/          0, /*End of Scope*/
/* 24616*/        /*Scope*/ 56|128,1/*184*/, /*->24802*/
/* 24618*/          OPC_CheckChild0Type, MVT::v8f16,
/* 24620*/          OPC_Scope, 29, /*->24651*/ // 6 children in Scope
/* 24622*/            OPC_CheckChild1Integer, 0, 
/* 24624*/            OPC_CheckChild1Type, MVT::i32,
/* 24626*/            OPC_MoveParent,
/* 24627*/            OPC_CheckType, MVT::v8i1,
/* 24629*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 24631*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24634*/            OPC_EmitInteger, MVT::i32, 0, 
/* 24637*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24640*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 0:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 24651*/          /*Scope*/ 29, /*->24681*/
/* 24652*/            OPC_CheckChild1Integer, 1, 
/* 24654*/            OPC_CheckChild1Type, MVT::i32,
/* 24656*/            OPC_MoveParent,
/* 24657*/            OPC_CheckType, MVT::v8i1,
/* 24659*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 24661*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24664*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24667*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24670*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 1:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 24681*/          /*Scope*/ 29, /*->24711*/
/* 24682*/            OPC_CheckChild1Integer, 10, 
/* 24684*/            OPC_CheckChild1Type, MVT::i32,
/* 24686*/            OPC_MoveParent,
/* 24687*/            OPC_CheckType, MVT::v8i1,
/* 24689*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 24691*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24694*/            OPC_EmitInteger, MVT::i32, 10, 
/* 24697*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24700*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 10:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 24711*/          /*Scope*/ 29, /*->24741*/
/* 24712*/            OPC_CheckChild1Integer, 11, 
/* 24714*/            OPC_CheckChild1Type, MVT::i32,
/* 24716*/            OPC_MoveParent,
/* 24717*/            OPC_CheckType, MVT::v8i1,
/* 24719*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 24721*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24724*/            OPC_EmitInteger, MVT::i32, 11, 
/* 24727*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24730*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 11:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 24741*/          /*Scope*/ 29, /*->24771*/
/* 24742*/            OPC_CheckChild1Integer, 12, 
/* 24744*/            OPC_CheckChild1Type, MVT::i32,
/* 24746*/            OPC_MoveParent,
/* 24747*/            OPC_CheckType, MVT::v8i1,
/* 24749*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 24751*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24754*/            OPC_EmitInteger, MVT::i32, 12, 
/* 24757*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24760*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 12:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 24771*/          /*Scope*/ 29, /*->24801*/
/* 24772*/            OPC_CheckChild1Integer, 13, 
/* 24774*/            OPC_CheckChild1Type, MVT::i32,
/* 24776*/            OPC_MoveParent,
/* 24777*/            OPC_CheckType, MVT::v8i1,
/* 24779*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 24781*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24784*/            OPC_EmitInteger, MVT::i32, 13, 
/* 24787*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24790*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 13:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 24801*/          0, /*End of Scope*/
/* 24802*/        /*Scope*/ 56|128,1/*184*/, /*->24988*/
/* 24804*/          OPC_CheckChild0Type, MVT::v4f32,
/* 24806*/          OPC_Scope, 29, /*->24837*/ // 6 children in Scope
/* 24808*/            OPC_CheckChild1Integer, 0, 
/* 24810*/            OPC_CheckChild1Type, MVT::i32,
/* 24812*/            OPC_MoveParent,
/* 24813*/            OPC_CheckType, MVT::v4i1,
/* 24815*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 24817*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24820*/            OPC_EmitInteger, MVT::i32, 0, 
/* 24823*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24826*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 0:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 24837*/          /*Scope*/ 29, /*->24867*/
/* 24838*/            OPC_CheckChild1Integer, 1, 
/* 24840*/            OPC_CheckChild1Type, MVT::i32,
/* 24842*/            OPC_MoveParent,
/* 24843*/            OPC_CheckType, MVT::v4i1,
/* 24845*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 24847*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24850*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24853*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24856*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 1:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 24867*/          /*Scope*/ 29, /*->24897*/
/* 24868*/            OPC_CheckChild1Integer, 10, 
/* 24870*/            OPC_CheckChild1Type, MVT::i32,
/* 24872*/            OPC_MoveParent,
/* 24873*/            OPC_CheckType, MVT::v4i1,
/* 24875*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 24877*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24880*/            OPC_EmitInteger, MVT::i32, 10, 
/* 24883*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24886*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 10:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 24897*/          /*Scope*/ 29, /*->24927*/
/* 24898*/            OPC_CheckChild1Integer, 11, 
/* 24900*/            OPC_CheckChild1Type, MVT::i32,
/* 24902*/            OPC_MoveParent,
/* 24903*/            OPC_CheckType, MVT::v4i1,
/* 24905*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 24907*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24910*/            OPC_EmitInteger, MVT::i32, 11, 
/* 24913*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24916*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 11:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 24927*/          /*Scope*/ 29, /*->24957*/
/* 24928*/            OPC_CheckChild1Integer, 12, 
/* 24930*/            OPC_CheckChild1Type, MVT::i32,
/* 24932*/            OPC_MoveParent,
/* 24933*/            OPC_CheckType, MVT::v4i1,
/* 24935*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 24937*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24940*/            OPC_EmitInteger, MVT::i32, 12, 
/* 24943*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24946*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 12:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 24957*/          /*Scope*/ 29, /*->24987*/
/* 24958*/            OPC_CheckChild1Integer, 13, 
/* 24960*/            OPC_CheckChild1Type, MVT::i32,
/* 24962*/            OPC_MoveParent,
/* 24963*/            OPC_CheckType, MVT::v4i1,
/* 24965*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 24967*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 24970*/            OPC_EmitInteger, MVT::i32, 13, 
/* 24973*/            OPC_EmitInteger, MVT::i32, 1, 
/* 24976*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 13:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 24987*/          0, /*End of Scope*/
/* 24988*/        0, /*End of Scope*/
/* 24989*/      /*SwitchOpcode*/ 114|128,7/*1010*/, TARGET_VAL(ARMISD::VCMP),// ->26003
/* 24993*/        OPC_RecordChild0, // #1 = $v1
/* 24994*/        OPC_Scope, 93|128,1/*221*/, /*->25218*/ // 5 children in Scope
/* 24997*/          OPC_CheckChild0Type, MVT::v16i8,
/* 24999*/          OPC_RecordChild1, // #2 = $v2
/* 25000*/          OPC_Scope, 26, /*->25028*/ // 8 children in Scope
/* 25002*/            OPC_CheckChild2Integer, 0, 
/* 25004*/            OPC_CheckChild2Type, MVT::i32,
/* 25006*/            OPC_MoveParent,
/* 25007*/            OPC_CheckType, MVT::v16i1,
/* 25009*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25011*/            OPC_EmitInteger, MVT::i32, 0, 
/* 25014*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25017*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 0:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPi8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 25028*/          /*Scope*/ 26, /*->25055*/
/* 25029*/            OPC_CheckChild2Integer, 1, 
/* 25031*/            OPC_CheckChild2Type, MVT::i32,
/* 25033*/            OPC_MoveParent,
/* 25034*/            OPC_CheckType, MVT::v16i1,
/* 25036*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25038*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25041*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25044*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 1:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPi8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 25055*/          /*Scope*/ 26, /*->25082*/
/* 25056*/            OPC_CheckChild2Integer, 10, 
/* 25058*/            OPC_CheckChild2Type, MVT::i32,
/* 25060*/            OPC_MoveParent,
/* 25061*/            OPC_CheckType, MVT::v16i1,
/* 25063*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25065*/            OPC_EmitInteger, MVT::i32, 10, 
/* 25068*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25071*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 10:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 25082*/          /*Scope*/ 26, /*->25109*/
/* 25083*/            OPC_CheckChild2Integer, 11, 
/* 25085*/            OPC_CheckChild2Type, MVT::i32,
/* 25087*/            OPC_MoveParent,
/* 25088*/            OPC_CheckType, MVT::v16i1,
/* 25090*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25092*/            OPC_EmitInteger, MVT::i32, 11, 
/* 25095*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25098*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 11:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 25109*/          /*Scope*/ 26, /*->25136*/
/* 25110*/            OPC_CheckChild2Integer, 12, 
/* 25112*/            OPC_CheckChild2Type, MVT::i32,
/* 25114*/            OPC_MoveParent,
/* 25115*/            OPC_CheckType, MVT::v16i1,
/* 25117*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25119*/            OPC_EmitInteger, MVT::i32, 12, 
/* 25122*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25125*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 12:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 25136*/          /*Scope*/ 26, /*->25163*/
/* 25137*/            OPC_CheckChild2Integer, 13, 
/* 25139*/            OPC_CheckChild2Type, MVT::i32,
/* 25141*/            OPC_MoveParent,
/* 25142*/            OPC_CheckType, MVT::v16i1,
/* 25144*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25146*/            OPC_EmitInteger, MVT::i32, 13, 
/* 25149*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25152*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 13:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 25163*/          /*Scope*/ 26, /*->25190*/
/* 25164*/            OPC_CheckChild2Integer, 8, 
/* 25166*/            OPC_CheckChild2Type, MVT::i32,
/* 25168*/            OPC_MoveParent,
/* 25169*/            OPC_CheckType, MVT::v16i1,
/* 25171*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25173*/            OPC_EmitInteger, MVT::i32, 8, 
/* 25176*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25179*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 8:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPu8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 25190*/          /*Scope*/ 26, /*->25217*/
/* 25191*/            OPC_CheckChild2Integer, 2, 
/* 25193*/            OPC_CheckChild2Type, MVT::i32,
/* 25195*/            OPC_MoveParent,
/* 25196*/            OPC_CheckType, MVT::v16i1,
/* 25198*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25200*/            OPC_EmitInteger, MVT::i32, 2, 
/* 25203*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25206*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8), 0,
                          MVT::v16i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 2:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPu8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 25217*/          0, /*End of Scope*/
/* 25218*/        /*Scope*/ 93|128,1/*221*/, /*->25441*/
/* 25220*/          OPC_CheckChild0Type, MVT::v8i16,
/* 25222*/          OPC_RecordChild1, // #2 = $v2
/* 25223*/          OPC_Scope, 26, /*->25251*/ // 8 children in Scope
/* 25225*/            OPC_CheckChild2Integer, 0, 
/* 25227*/            OPC_CheckChild2Type, MVT::i32,
/* 25229*/            OPC_MoveParent,
/* 25230*/            OPC_CheckType, MVT::v8i1,
/* 25232*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25234*/            OPC_EmitInteger, MVT::i32, 0, 
/* 25237*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25240*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 0:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPi16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 25251*/          /*Scope*/ 26, /*->25278*/
/* 25252*/            OPC_CheckChild2Integer, 1, 
/* 25254*/            OPC_CheckChild2Type, MVT::i32,
/* 25256*/            OPC_MoveParent,
/* 25257*/            OPC_CheckType, MVT::v8i1,
/* 25259*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25261*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25264*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25267*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 1:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPi16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 25278*/          /*Scope*/ 26, /*->25305*/
/* 25279*/            OPC_CheckChild2Integer, 10, 
/* 25281*/            OPC_CheckChild2Type, MVT::i32,
/* 25283*/            OPC_MoveParent,
/* 25284*/            OPC_CheckType, MVT::v8i1,
/* 25286*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25288*/            OPC_EmitInteger, MVT::i32, 10, 
/* 25291*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25294*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 10:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 25305*/          /*Scope*/ 26, /*->25332*/
/* 25306*/            OPC_CheckChild2Integer, 11, 
/* 25308*/            OPC_CheckChild2Type, MVT::i32,
/* 25310*/            OPC_MoveParent,
/* 25311*/            OPC_CheckType, MVT::v8i1,
/* 25313*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25315*/            OPC_EmitInteger, MVT::i32, 11, 
/* 25318*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25321*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 11:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 25332*/          /*Scope*/ 26, /*->25359*/
/* 25333*/            OPC_CheckChild2Integer, 12, 
/* 25335*/            OPC_CheckChild2Type, MVT::i32,
/* 25337*/            OPC_MoveParent,
/* 25338*/            OPC_CheckType, MVT::v8i1,
/* 25340*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25342*/            OPC_EmitInteger, MVT::i32, 12, 
/* 25345*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25348*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 12:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 25359*/          /*Scope*/ 26, /*->25386*/
/* 25360*/            OPC_CheckChild2Integer, 13, 
/* 25362*/            OPC_CheckChild2Type, MVT::i32,
/* 25364*/            OPC_MoveParent,
/* 25365*/            OPC_CheckType, MVT::v8i1,
/* 25367*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25369*/            OPC_EmitInteger, MVT::i32, 13, 
/* 25372*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25375*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 13:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 25386*/          /*Scope*/ 26, /*->25413*/
/* 25387*/            OPC_CheckChild2Integer, 8, 
/* 25389*/            OPC_CheckChild2Type, MVT::i32,
/* 25391*/            OPC_MoveParent,
/* 25392*/            OPC_CheckType, MVT::v8i1,
/* 25394*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25396*/            OPC_EmitInteger, MVT::i32, 8, 
/* 25399*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25402*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 8:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPu16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 25413*/          /*Scope*/ 26, /*->25440*/
/* 25414*/            OPC_CheckChild2Integer, 2, 
/* 25416*/            OPC_CheckChild2Type, MVT::i32,
/* 25418*/            OPC_MoveParent,
/* 25419*/            OPC_CheckType, MVT::v8i1,
/* 25421*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25423*/            OPC_EmitInteger, MVT::i32, 2, 
/* 25426*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25429*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 2:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPu16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 25440*/          0, /*End of Scope*/
/* 25441*/        /*Scope*/ 93|128,1/*221*/, /*->25664*/
/* 25443*/          OPC_CheckChild0Type, MVT::v4i32,
/* 25445*/          OPC_RecordChild1, // #2 = $v2
/* 25446*/          OPC_Scope, 26, /*->25474*/ // 8 children in Scope
/* 25448*/            OPC_CheckChild2Integer, 0, 
/* 25450*/            OPC_CheckChild2Type, MVT::i32,
/* 25452*/            OPC_MoveParent,
/* 25453*/            OPC_CheckType, MVT::v4i1,
/* 25455*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25457*/            OPC_EmitInteger, MVT::i32, 0, 
/* 25460*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25463*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 0:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPi32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 25474*/          /*Scope*/ 26, /*->25501*/
/* 25475*/            OPC_CheckChild2Integer, 1, 
/* 25477*/            OPC_CheckChild2Type, MVT::i32,
/* 25479*/            OPC_MoveParent,
/* 25480*/            OPC_CheckType, MVT::v4i1,
/* 25482*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25484*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25487*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25490*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 1:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPi32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 25501*/          /*Scope*/ 26, /*->25528*/
/* 25502*/            OPC_CheckChild2Integer, 10, 
/* 25504*/            OPC_CheckChild2Type, MVT::i32,
/* 25506*/            OPC_MoveParent,
/* 25507*/            OPC_CheckType, MVT::v4i1,
/* 25509*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25511*/            OPC_EmitInteger, MVT::i32, 10, 
/* 25514*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25517*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 10:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 25528*/          /*Scope*/ 26, /*->25555*/
/* 25529*/            OPC_CheckChild2Integer, 11, 
/* 25531*/            OPC_CheckChild2Type, MVT::i32,
/* 25533*/            OPC_MoveParent,
/* 25534*/            OPC_CheckType, MVT::v4i1,
/* 25536*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25538*/            OPC_EmitInteger, MVT::i32, 11, 
/* 25541*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25544*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 11:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 25555*/          /*Scope*/ 26, /*->25582*/
/* 25556*/            OPC_CheckChild2Integer, 12, 
/* 25558*/            OPC_CheckChild2Type, MVT::i32,
/* 25560*/            OPC_MoveParent,
/* 25561*/            OPC_CheckType, MVT::v4i1,
/* 25563*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25565*/            OPC_EmitInteger, MVT::i32, 12, 
/* 25568*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25571*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 12:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 25582*/          /*Scope*/ 26, /*->25609*/
/* 25583*/            OPC_CheckChild2Integer, 13, 
/* 25585*/            OPC_CheckChild2Type, MVT::i32,
/* 25587*/            OPC_MoveParent,
/* 25588*/            OPC_CheckType, MVT::v4i1,
/* 25590*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25592*/            OPC_EmitInteger, MVT::i32, 13, 
/* 25595*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25598*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 13:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPs32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 25609*/          /*Scope*/ 26, /*->25636*/
/* 25610*/            OPC_CheckChild2Integer, 8, 
/* 25612*/            OPC_CheckChild2Type, MVT::i32,
/* 25614*/            OPC_MoveParent,
/* 25615*/            OPC_CheckType, MVT::v4i1,
/* 25617*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25619*/            OPC_EmitInteger, MVT::i32, 8, 
/* 25622*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25625*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 8:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPu32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 25636*/          /*Scope*/ 26, /*->25663*/
/* 25637*/            OPC_CheckChild2Integer, 2, 
/* 25639*/            OPC_CheckChild2Type, MVT::i32,
/* 25641*/            OPC_MoveParent,
/* 25642*/            OPC_CheckType, MVT::v4i1,
/* 25644*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 25646*/            OPC_EmitInteger, MVT::i32, 2, 
/* 25649*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25652*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 2:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPu32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 25663*/          0, /*End of Scope*/
/* 25664*/        /*Scope*/ 39|128,1/*167*/, /*->25833*/
/* 25666*/          OPC_CheckChild0Type, MVT::v8f16,
/* 25668*/          OPC_RecordChild1, // #2 = $v2
/* 25669*/          OPC_Scope, 26, /*->25697*/ // 6 children in Scope
/* 25671*/            OPC_CheckChild2Integer, 0, 
/* 25673*/            OPC_CheckChild2Type, MVT::i32,
/* 25675*/            OPC_MoveParent,
/* 25676*/            OPC_CheckType, MVT::v8i1,
/* 25678*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 25680*/            OPC_EmitInteger, MVT::i32, 0, 
/* 25683*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25686*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 0:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 25697*/          /*Scope*/ 26, /*->25724*/
/* 25698*/            OPC_CheckChild2Integer, 1, 
/* 25700*/            OPC_CheckChild2Type, MVT::i32,
/* 25702*/            OPC_MoveParent,
/* 25703*/            OPC_CheckType, MVT::v8i1,
/* 25705*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 25707*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25710*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25713*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 1:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 25724*/          /*Scope*/ 26, /*->25751*/
/* 25725*/            OPC_CheckChild2Integer, 10, 
/* 25727*/            OPC_CheckChild2Type, MVT::i32,
/* 25729*/            OPC_MoveParent,
/* 25730*/            OPC_CheckType, MVT::v8i1,
/* 25732*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 25734*/            OPC_EmitInteger, MVT::i32, 10, 
/* 25737*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25740*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 10:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 25751*/          /*Scope*/ 26, /*->25778*/
/* 25752*/            OPC_CheckChild2Integer, 11, 
/* 25754*/            OPC_CheckChild2Type, MVT::i32,
/* 25756*/            OPC_MoveParent,
/* 25757*/            OPC_CheckType, MVT::v8i1,
/* 25759*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 25761*/            OPC_EmitInteger, MVT::i32, 11, 
/* 25764*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25767*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 11:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 25778*/          /*Scope*/ 26, /*->25805*/
/* 25779*/            OPC_CheckChild2Integer, 12, 
/* 25781*/            OPC_CheckChild2Type, MVT::i32,
/* 25783*/            OPC_MoveParent,
/* 25784*/            OPC_CheckType, MVT::v8i1,
/* 25786*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 25788*/            OPC_EmitInteger, MVT::i32, 12, 
/* 25791*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25794*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 12:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 25805*/          /*Scope*/ 26, /*->25832*/
/* 25806*/            OPC_CheckChild2Integer, 13, 
/* 25808*/            OPC_CheckChild2Type, MVT::i32,
/* 25810*/            OPC_MoveParent,
/* 25811*/            OPC_CheckType, MVT::v8i1,
/* 25813*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 25815*/            OPC_EmitInteger, MVT::i32, 13, 
/* 25818*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25821*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 13:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 25832*/          0, /*End of Scope*/
/* 25833*/        /*Scope*/ 39|128,1/*167*/, /*->26002*/
/* 25835*/          OPC_CheckChild0Type, MVT::v4f32,
/* 25837*/          OPC_RecordChild1, // #2 = $v2
/* 25838*/          OPC_Scope, 26, /*->25866*/ // 6 children in Scope
/* 25840*/            OPC_CheckChild2Integer, 0, 
/* 25842*/            OPC_CheckChild2Type, MVT::i32,
/* 25844*/            OPC_MoveParent,
/* 25845*/            OPC_CheckType, MVT::v4i1,
/* 25847*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 25849*/            OPC_EmitInteger, MVT::i32, 0, 
/* 25852*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25855*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 0:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 25866*/          /*Scope*/ 26, /*->25893*/
/* 25867*/            OPC_CheckChild2Integer, 1, 
/* 25869*/            OPC_CheckChild2Type, MVT::i32,
/* 25871*/            OPC_MoveParent,
/* 25872*/            OPC_CheckType, MVT::v4i1,
/* 25874*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 25876*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25879*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25882*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 1:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 25893*/          /*Scope*/ 26, /*->25920*/
/* 25894*/            OPC_CheckChild2Integer, 10, 
/* 25896*/            OPC_CheckChild2Type, MVT::i32,
/* 25898*/            OPC_MoveParent,
/* 25899*/            OPC_CheckType, MVT::v4i1,
/* 25901*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 25903*/            OPC_EmitInteger, MVT::i32, 10, 
/* 25906*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25909*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 10:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 25920*/          /*Scope*/ 26, /*->25947*/
/* 25921*/            OPC_CheckChild2Integer, 11, 
/* 25923*/            OPC_CheckChild2Type, MVT::i32,
/* 25925*/            OPC_MoveParent,
/* 25926*/            OPC_CheckType, MVT::v4i1,
/* 25928*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 25930*/            OPC_EmitInteger, MVT::i32, 11, 
/* 25933*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25936*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 11:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 25947*/          /*Scope*/ 26, /*->25974*/
/* 25948*/            OPC_CheckChild2Integer, 12, 
/* 25950*/            OPC_CheckChild2Type, MVT::i32,
/* 25952*/            OPC_MoveParent,
/* 25953*/            OPC_CheckType, MVT::v4i1,
/* 25955*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 25957*/            OPC_EmitInteger, MVT::i32, 12, 
/* 25960*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25963*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 12:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 25974*/          /*Scope*/ 26, /*->26001*/
/* 25975*/            OPC_CheckChild2Integer, 13, 
/* 25977*/            OPC_CheckChild2Type, MVT::i32,
/* 25979*/            OPC_MoveParent,
/* 25980*/            OPC_CheckType, MVT::v4i1,
/* 25982*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 25984*/            OPC_EmitInteger, MVT::i32, 13, 
/* 25987*/            OPC_EmitInteger, MVT::i32, 1, 
/* 25990*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 1, 2, 3, 4, 0, 
                      // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 13:{ *:[i32] })) - Complexity = 11
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 26001*/          0, /*End of Scope*/
/* 26002*/        0, /*End of Scope*/
/* 26003*/      0, // EndSwitchOpcode
/* 26004*/    /*Scope*/ 60|128,18/*2364*/, /*->28370*/
/* 26006*/      OPC_MoveChild0,
/* 26007*/      OPC_SwitchOpcode /*4 cases */, 86, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->26097
/* 26011*/        OPC_Scope, 20, /*->26033*/ // 4 children in Scope
/* 26013*/          OPC_CheckChild0Integer, 58|128,12/*1594*/, 
/* 26016*/          OPC_RecordChild1, // #0 = $Rn
/* 26017*/          OPC_MoveParent,
/* 26018*/          OPC_RecordChild1, // #1 = $mask
/* 26019*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26021*/          OPC_EmitInteger, MVT::i32, 1, 
/* 26024*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCTP8), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 2, 1, 
                    // Src: (and:{ *:[v16i1] } (intrinsic_wo_chain:{ *:[v16i1] } 1594:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn), VCCR:{ *:[v16i1] }:$mask) - Complexity = 11
                    // Dst: (MVE_VCTP8:{ *:[v16i1] } rGPR:{ *:[i32] }:$Rn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 26033*/        /*Scope*/ 20, /*->26054*/
/* 26034*/          OPC_CheckChild0Integer, 55|128,12/*1591*/, 
/* 26037*/          OPC_RecordChild1, // #0 = $Rn
/* 26038*/          OPC_MoveParent,
/* 26039*/          OPC_RecordChild1, // #1 = $mask
/* 26040*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26042*/          OPC_EmitInteger, MVT::i32, 1, 
/* 26045*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCTP16), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 2, 1, 
                    // Src: (and:{ *:[v8i1] } (intrinsic_wo_chain:{ *:[v8i1] } 1591:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn), VCCR:{ *:[v8i1] }:$mask) - Complexity = 11
                    // Dst: (MVE_VCTP16:{ *:[v8i1] } rGPR:{ *:[i32] }:$Rn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 26054*/        /*Scope*/ 20, /*->26075*/
/* 26055*/          OPC_CheckChild0Integer, 56|128,12/*1592*/, 
/* 26058*/          OPC_RecordChild1, // #0 = $Rn
/* 26059*/          OPC_MoveParent,
/* 26060*/          OPC_RecordChild1, // #1 = $mask
/* 26061*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26063*/          OPC_EmitInteger, MVT::i32, 1, 
/* 26066*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCTP32), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 2, 1, 
                    // Src: (and:{ *:[v4i1] } (intrinsic_wo_chain:{ *:[v4i1] } 1592:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn), VCCR:{ *:[v4i1] }:$mask) - Complexity = 11
                    // Dst: (MVE_VCTP32:{ *:[v4i1] } rGPR:{ *:[i32] }:$Rn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 26075*/        /*Scope*/ 20, /*->26096*/
/* 26076*/          OPC_CheckChild0Integer, 57|128,12/*1593*/, 
/* 26079*/          OPC_RecordChild1, // #0 = $Rn
/* 26080*/          OPC_MoveParent,
/* 26081*/          OPC_RecordChild1, // #1 = $mask
/* 26082*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26084*/          OPC_EmitInteger, MVT::i32, 1, 
/* 26087*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCTP64), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 2, 1, 
                    // Src: (and:{ *:[v4i1] } (intrinsic_wo_chain:{ *:[v4i1] } 1593:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn), VCCR:{ *:[v4i1] }:$mask) - Complexity = 11
                    // Dst: (MVE_VCTP64:{ *:[v4i1] } rGPR:{ *:[i32] }:$Rn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 26096*/        0, /*End of Scope*/
/* 26097*/      /*SwitchOpcode*/ 66, TARGET_VAL(ARMISD::VMOVIMM),// ->26166
/* 26100*/        OPC_Scope, 31, /*->26133*/ // 2 children in Scope
/* 26102*/          OPC_CheckChild0Integer, 127|128,25/*3327*/, 
/* 26105*/          OPC_MoveParent,
/* 26106*/          OPC_RecordChild1, // #0 = $src
/* 26107*/          OPC_CheckType, MVT::v4i32,
/* 26109*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26111*/          OPC_EmitInteger, MVT::i32, 0, 
/* 26114*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26117*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 26123*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVLu16bh), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v4i32] } (ARMvmovImm:{ *:[v4i32] } 3327:{ *:[i32] }), MQPR:{ *:[v4i32] }:$src) - Complexity = 11
                    // Dst: (MVE_VMOVLu16bh:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src)
/* 26133*/        /*Scope*/ 31, /*->26165*/
/* 26134*/          OPC_CheckChild0Integer, 127|128,17/*2303*/, 
/* 26137*/          OPC_MoveParent,
/* 26138*/          OPC_RecordChild1, // #0 = $src
/* 26139*/          OPC_CheckType, MVT::v8i16,
/* 26141*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26143*/          OPC_EmitInteger, MVT::i32, 0, 
/* 26146*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 26149*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 26155*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVLu8bh), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v8i16] } (ARMvmovImm:{ *:[v8i16] } 2303:{ *:[i32] }), MQPR:{ *:[v8i16] }:$src) - Complexity = 11
                    // Dst: (MVE_VMOVLu8bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src)
/* 26165*/        0, /*End of Scope*/
/* 26166*/      /*SwitchOpcode*/ 125|128,8/*1149*/, TARGET_VAL(ARMISD::VCMPZ),// ->27319
/* 26170*/        OPC_RecordChild0, // #0 = $v1
/* 26171*/        OPC_Scope, 124|128,1/*252*/, /*->26426*/ // 5 children in Scope
/* 26174*/          OPC_CheckChild0Type, MVT::v16i8,
/* 26176*/          OPC_Scope, 30, /*->26208*/ // 8 children in Scope
/* 26178*/            OPC_CheckChild1Integer, 0, 
/* 26180*/            OPC_CheckChild1Type, MVT::i32,
/* 26182*/            OPC_MoveParent,
/* 26183*/            OPC_RecordChild1, // #1 = $p1
/* 26184*/            OPC_CheckType, MVT::v16i1,
/* 26186*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26188*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26191*/            OPC_EmitInteger, MVT::i32, 0, 
/* 26194*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26197*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 0:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPi8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 26208*/          /*Scope*/ 30, /*->26239*/
/* 26209*/            OPC_CheckChild1Integer, 1, 
/* 26211*/            OPC_CheckChild1Type, MVT::i32,
/* 26213*/            OPC_MoveParent,
/* 26214*/            OPC_RecordChild1, // #1 = $p1
/* 26215*/            OPC_CheckType, MVT::v16i1,
/* 26217*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26219*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26222*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26225*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26228*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 1:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPi8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 26239*/          /*Scope*/ 30, /*->26270*/
/* 26240*/            OPC_CheckChild1Integer, 10, 
/* 26242*/            OPC_CheckChild1Type, MVT::i32,
/* 26244*/            OPC_MoveParent,
/* 26245*/            OPC_RecordChild1, // #1 = $p1
/* 26246*/            OPC_CheckType, MVT::v16i1,
/* 26248*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26250*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26253*/            OPC_EmitInteger, MVT::i32, 10, 
/* 26256*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26259*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 10:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 26270*/          /*Scope*/ 30, /*->26301*/
/* 26271*/            OPC_CheckChild1Integer, 11, 
/* 26273*/            OPC_CheckChild1Type, MVT::i32,
/* 26275*/            OPC_MoveParent,
/* 26276*/            OPC_RecordChild1, // #1 = $p1
/* 26277*/            OPC_CheckType, MVT::v16i1,
/* 26279*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26281*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26284*/            OPC_EmitInteger, MVT::i32, 11, 
/* 26287*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26290*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 11:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 26301*/          /*Scope*/ 30, /*->26332*/
/* 26302*/            OPC_CheckChild1Integer, 12, 
/* 26304*/            OPC_CheckChild1Type, MVT::i32,
/* 26306*/            OPC_MoveParent,
/* 26307*/            OPC_RecordChild1, // #1 = $p1
/* 26308*/            OPC_CheckType, MVT::v16i1,
/* 26310*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26312*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26315*/            OPC_EmitInteger, MVT::i32, 12, 
/* 26318*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26321*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 12:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 26332*/          /*Scope*/ 30, /*->26363*/
/* 26333*/            OPC_CheckChild1Integer, 13, 
/* 26335*/            OPC_CheckChild1Type, MVT::i32,
/* 26337*/            OPC_MoveParent,
/* 26338*/            OPC_RecordChild1, // #1 = $p1
/* 26339*/            OPC_CheckType, MVT::v16i1,
/* 26341*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26343*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26346*/            OPC_EmitInteger, MVT::i32, 13, 
/* 26349*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26352*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 13:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 26363*/          /*Scope*/ 30, /*->26394*/
/* 26364*/            OPC_CheckChild1Integer, 8, 
/* 26366*/            OPC_CheckChild1Type, MVT::i32,
/* 26368*/            OPC_MoveParent,
/* 26369*/            OPC_RecordChild1, // #1 = $p1
/* 26370*/            OPC_CheckType, MVT::v16i1,
/* 26372*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26374*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26377*/            OPC_EmitInteger, MVT::i32, 8, 
/* 26380*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26383*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 8:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPu8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 26394*/          /*Scope*/ 30, /*->26425*/
/* 26395*/            OPC_CheckChild1Integer, 2, 
/* 26397*/            OPC_CheckChild1Type, MVT::i32,
/* 26399*/            OPC_MoveParent,
/* 26400*/            OPC_RecordChild1, // #1 = $p1
/* 26401*/            OPC_CheckType, MVT::v16i1,
/* 26403*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26405*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26408*/            OPC_EmitInteger, MVT::i32, 2, 
/* 26411*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26414*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8r), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 2:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPu8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 26425*/          0, /*End of Scope*/
/* 26426*/        /*Scope*/ 124|128,1/*252*/, /*->26680*/
/* 26428*/          OPC_CheckChild0Type, MVT::v8i16,
/* 26430*/          OPC_Scope, 30, /*->26462*/ // 8 children in Scope
/* 26432*/            OPC_CheckChild1Integer, 0, 
/* 26434*/            OPC_CheckChild1Type, MVT::i32,
/* 26436*/            OPC_MoveParent,
/* 26437*/            OPC_RecordChild1, // #1 = $p1
/* 26438*/            OPC_CheckType, MVT::v8i1,
/* 26440*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26442*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26445*/            OPC_EmitInteger, MVT::i32, 0, 
/* 26448*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26451*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 0:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPi16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 26462*/          /*Scope*/ 30, /*->26493*/
/* 26463*/            OPC_CheckChild1Integer, 1, 
/* 26465*/            OPC_CheckChild1Type, MVT::i32,
/* 26467*/            OPC_MoveParent,
/* 26468*/            OPC_RecordChild1, // #1 = $p1
/* 26469*/            OPC_CheckType, MVT::v8i1,
/* 26471*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26473*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26476*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26479*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26482*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 1:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPi16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 26493*/          /*Scope*/ 30, /*->26524*/
/* 26494*/            OPC_CheckChild1Integer, 10, 
/* 26496*/            OPC_CheckChild1Type, MVT::i32,
/* 26498*/            OPC_MoveParent,
/* 26499*/            OPC_RecordChild1, // #1 = $p1
/* 26500*/            OPC_CheckType, MVT::v8i1,
/* 26502*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26504*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26507*/            OPC_EmitInteger, MVT::i32, 10, 
/* 26510*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26513*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 10:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 26524*/          /*Scope*/ 30, /*->26555*/
/* 26525*/            OPC_CheckChild1Integer, 11, 
/* 26527*/            OPC_CheckChild1Type, MVT::i32,
/* 26529*/            OPC_MoveParent,
/* 26530*/            OPC_RecordChild1, // #1 = $p1
/* 26531*/            OPC_CheckType, MVT::v8i1,
/* 26533*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26535*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26538*/            OPC_EmitInteger, MVT::i32, 11, 
/* 26541*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26544*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 11:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 26555*/          /*Scope*/ 30, /*->26586*/
/* 26556*/            OPC_CheckChild1Integer, 12, 
/* 26558*/            OPC_CheckChild1Type, MVT::i32,
/* 26560*/            OPC_MoveParent,
/* 26561*/            OPC_RecordChild1, // #1 = $p1
/* 26562*/            OPC_CheckType, MVT::v8i1,
/* 26564*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26566*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26569*/            OPC_EmitInteger, MVT::i32, 12, 
/* 26572*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26575*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 12:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 26586*/          /*Scope*/ 30, /*->26617*/
/* 26587*/            OPC_CheckChild1Integer, 13, 
/* 26589*/            OPC_CheckChild1Type, MVT::i32,
/* 26591*/            OPC_MoveParent,
/* 26592*/            OPC_RecordChild1, // #1 = $p1
/* 26593*/            OPC_CheckType, MVT::v8i1,
/* 26595*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26597*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26600*/            OPC_EmitInteger, MVT::i32, 13, 
/* 26603*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26606*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 13:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 26617*/          /*Scope*/ 30, /*->26648*/
/* 26618*/            OPC_CheckChild1Integer, 8, 
/* 26620*/            OPC_CheckChild1Type, MVT::i32,
/* 26622*/            OPC_MoveParent,
/* 26623*/            OPC_RecordChild1, // #1 = $p1
/* 26624*/            OPC_CheckType, MVT::v8i1,
/* 26626*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26628*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26631*/            OPC_EmitInteger, MVT::i32, 8, 
/* 26634*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26637*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 8:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPu16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 26648*/          /*Scope*/ 30, /*->26679*/
/* 26649*/            OPC_CheckChild1Integer, 2, 
/* 26651*/            OPC_CheckChild1Type, MVT::i32,
/* 26653*/            OPC_MoveParent,
/* 26654*/            OPC_RecordChild1, // #1 = $p1
/* 26655*/            OPC_CheckType, MVT::v8i1,
/* 26657*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26659*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26662*/            OPC_EmitInteger, MVT::i32, 2, 
/* 26665*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26668*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16r), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 2:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPu16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 26679*/          0, /*End of Scope*/
/* 26680*/        /*Scope*/ 124|128,1/*252*/, /*->26934*/
/* 26682*/          OPC_CheckChild0Type, MVT::v4i32,
/* 26684*/          OPC_Scope, 30, /*->26716*/ // 8 children in Scope
/* 26686*/            OPC_CheckChild1Integer, 0, 
/* 26688*/            OPC_CheckChild1Type, MVT::i32,
/* 26690*/            OPC_MoveParent,
/* 26691*/            OPC_RecordChild1, // #1 = $p1
/* 26692*/            OPC_CheckType, MVT::v4i1,
/* 26694*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26696*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26699*/            OPC_EmitInteger, MVT::i32, 0, 
/* 26702*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26705*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 0:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPi32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 26716*/          /*Scope*/ 30, /*->26747*/
/* 26717*/            OPC_CheckChild1Integer, 1, 
/* 26719*/            OPC_CheckChild1Type, MVT::i32,
/* 26721*/            OPC_MoveParent,
/* 26722*/            OPC_RecordChild1, // #1 = $p1
/* 26723*/            OPC_CheckType, MVT::v4i1,
/* 26725*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26727*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26730*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26733*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26736*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 1:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPi32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 26747*/          /*Scope*/ 30, /*->26778*/
/* 26748*/            OPC_CheckChild1Integer, 10, 
/* 26750*/            OPC_CheckChild1Type, MVT::i32,
/* 26752*/            OPC_MoveParent,
/* 26753*/            OPC_RecordChild1, // #1 = $p1
/* 26754*/            OPC_CheckType, MVT::v4i1,
/* 26756*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26758*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26761*/            OPC_EmitInteger, MVT::i32, 10, 
/* 26764*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26767*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 10:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 26778*/          /*Scope*/ 30, /*->26809*/
/* 26779*/            OPC_CheckChild1Integer, 11, 
/* 26781*/            OPC_CheckChild1Type, MVT::i32,
/* 26783*/            OPC_MoveParent,
/* 26784*/            OPC_RecordChild1, // #1 = $p1
/* 26785*/            OPC_CheckType, MVT::v4i1,
/* 26787*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26789*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26792*/            OPC_EmitInteger, MVT::i32, 11, 
/* 26795*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26798*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 11:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 26809*/          /*Scope*/ 30, /*->26840*/
/* 26810*/            OPC_CheckChild1Integer, 12, 
/* 26812*/            OPC_CheckChild1Type, MVT::i32,
/* 26814*/            OPC_MoveParent,
/* 26815*/            OPC_RecordChild1, // #1 = $p1
/* 26816*/            OPC_CheckType, MVT::v4i1,
/* 26818*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26820*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26823*/            OPC_EmitInteger, MVT::i32, 12, 
/* 26826*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26829*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 12:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 26840*/          /*Scope*/ 30, /*->26871*/
/* 26841*/            OPC_CheckChild1Integer, 13, 
/* 26843*/            OPC_CheckChild1Type, MVT::i32,
/* 26845*/            OPC_MoveParent,
/* 26846*/            OPC_RecordChild1, // #1 = $p1
/* 26847*/            OPC_CheckType, MVT::v4i1,
/* 26849*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26851*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26854*/            OPC_EmitInteger, MVT::i32, 13, 
/* 26857*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26860*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 13:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 26871*/          /*Scope*/ 30, /*->26902*/
/* 26872*/            OPC_CheckChild1Integer, 8, 
/* 26874*/            OPC_CheckChild1Type, MVT::i32,
/* 26876*/            OPC_MoveParent,
/* 26877*/            OPC_RecordChild1, // #1 = $p1
/* 26878*/            OPC_CheckType, MVT::v4i1,
/* 26880*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26882*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26885*/            OPC_EmitInteger, MVT::i32, 8, 
/* 26888*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26891*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 8:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPu32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 26902*/          /*Scope*/ 30, /*->26933*/
/* 26903*/            OPC_CheckChild1Integer, 2, 
/* 26905*/            OPC_CheckChild1Type, MVT::i32,
/* 26907*/            OPC_MoveParent,
/* 26908*/            OPC_RecordChild1, // #1 = $p1
/* 26909*/            OPC_CheckType, MVT::v4i1,
/* 26911*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 26913*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26916*/            OPC_EmitInteger, MVT::i32, 2, 
/* 26919*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26922*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 2:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPu32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 26933*/          0, /*End of Scope*/
/* 26934*/        /*Scope*/ 62|128,1/*190*/, /*->27126*/
/* 26936*/          OPC_CheckChild0Type, MVT::v8f16,
/* 26938*/          OPC_Scope, 30, /*->26970*/ // 6 children in Scope
/* 26940*/            OPC_CheckChild1Integer, 0, 
/* 26942*/            OPC_CheckChild1Type, MVT::i32,
/* 26944*/            OPC_MoveParent,
/* 26945*/            OPC_RecordChild1, // #1 = $p1
/* 26946*/            OPC_CheckType, MVT::v8i1,
/* 26948*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 26950*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26953*/            OPC_EmitInteger, MVT::i32, 0, 
/* 26956*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26959*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 0:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 26970*/          /*Scope*/ 30, /*->27001*/
/* 26971*/            OPC_CheckChild1Integer, 1, 
/* 26973*/            OPC_CheckChild1Type, MVT::i32,
/* 26975*/            OPC_MoveParent,
/* 26976*/            OPC_RecordChild1, // #1 = $p1
/* 26977*/            OPC_CheckType, MVT::v8i1,
/* 26979*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 26981*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 26984*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26987*/            OPC_EmitInteger, MVT::i32, 1, 
/* 26990*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 1:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 27001*/          /*Scope*/ 30, /*->27032*/
/* 27002*/            OPC_CheckChild1Integer, 10, 
/* 27004*/            OPC_CheckChild1Type, MVT::i32,
/* 27006*/            OPC_MoveParent,
/* 27007*/            OPC_RecordChild1, // #1 = $p1
/* 27008*/            OPC_CheckType, MVT::v8i1,
/* 27010*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 27012*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 27015*/            OPC_EmitInteger, MVT::i32, 10, 
/* 27018*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27021*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 10:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 27032*/          /*Scope*/ 30, /*->27063*/
/* 27033*/            OPC_CheckChild1Integer, 11, 
/* 27035*/            OPC_CheckChild1Type, MVT::i32,
/* 27037*/            OPC_MoveParent,
/* 27038*/            OPC_RecordChild1, // #1 = $p1
/* 27039*/            OPC_CheckType, MVT::v8i1,
/* 27041*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 27043*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 27046*/            OPC_EmitInteger, MVT::i32, 11, 
/* 27049*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27052*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 11:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 27063*/          /*Scope*/ 30, /*->27094*/
/* 27064*/            OPC_CheckChild1Integer, 12, 
/* 27066*/            OPC_CheckChild1Type, MVT::i32,
/* 27068*/            OPC_MoveParent,
/* 27069*/            OPC_RecordChild1, // #1 = $p1
/* 27070*/            OPC_CheckType, MVT::v8i1,
/* 27072*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 27074*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 27077*/            OPC_EmitInteger, MVT::i32, 12, 
/* 27080*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27083*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 12:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 27094*/          /*Scope*/ 30, /*->27125*/
/* 27095*/            OPC_CheckChild1Integer, 13, 
/* 27097*/            OPC_CheckChild1Type, MVT::i32,
/* 27099*/            OPC_MoveParent,
/* 27100*/            OPC_RecordChild1, // #1 = $p1
/* 27101*/            OPC_CheckType, MVT::v8i1,
/* 27103*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 27105*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 27108*/            OPC_EmitInteger, MVT::i32, 13, 
/* 27111*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27114*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 13:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 27125*/          0, /*End of Scope*/
/* 27126*/        /*Scope*/ 62|128,1/*190*/, /*->27318*/
/* 27128*/          OPC_CheckChild0Type, MVT::v4f32,
/* 27130*/          OPC_Scope, 30, /*->27162*/ // 6 children in Scope
/* 27132*/            OPC_CheckChild1Integer, 0, 
/* 27134*/            OPC_CheckChild1Type, MVT::i32,
/* 27136*/            OPC_MoveParent,
/* 27137*/            OPC_RecordChild1, // #1 = $p1
/* 27138*/            OPC_CheckType, MVT::v4i1,
/* 27140*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 27142*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 27145*/            OPC_EmitInteger, MVT::i32, 0, 
/* 27148*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27151*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 0:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 27162*/          /*Scope*/ 30, /*->27193*/
/* 27163*/            OPC_CheckChild1Integer, 1, 
/* 27165*/            OPC_CheckChild1Type, MVT::i32,
/* 27167*/            OPC_MoveParent,
/* 27168*/            OPC_RecordChild1, // #1 = $p1
/* 27169*/            OPC_CheckType, MVT::v4i1,
/* 27171*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 27173*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 27176*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27179*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27182*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 1:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 27193*/          /*Scope*/ 30, /*->27224*/
/* 27194*/            OPC_CheckChild1Integer, 10, 
/* 27196*/            OPC_CheckChild1Type, MVT::i32,
/* 27198*/            OPC_MoveParent,
/* 27199*/            OPC_RecordChild1, // #1 = $p1
/* 27200*/            OPC_CheckType, MVT::v4i1,
/* 27202*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 27204*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 27207*/            OPC_EmitInteger, MVT::i32, 10, 
/* 27210*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27213*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 10:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 27224*/          /*Scope*/ 30, /*->27255*/
/* 27225*/            OPC_CheckChild1Integer, 11, 
/* 27227*/            OPC_CheckChild1Type, MVT::i32,
/* 27229*/            OPC_MoveParent,
/* 27230*/            OPC_RecordChild1, // #1 = $p1
/* 27231*/            OPC_CheckType, MVT::v4i1,
/* 27233*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 27235*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 27238*/            OPC_EmitInteger, MVT::i32, 11, 
/* 27241*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27244*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 11:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 27255*/          /*Scope*/ 30, /*->27286*/
/* 27256*/            OPC_CheckChild1Integer, 12, 
/* 27258*/            OPC_CheckChild1Type, MVT::i32,
/* 27260*/            OPC_MoveParent,
/* 27261*/            OPC_RecordChild1, // #1 = $p1
/* 27262*/            OPC_CheckType, MVT::v4i1,
/* 27264*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 27266*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 27269*/            OPC_EmitInteger, MVT::i32, 12, 
/* 27272*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27275*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 12:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 27286*/          /*Scope*/ 30, /*->27317*/
/* 27287*/            OPC_CheckChild1Integer, 13, 
/* 27289*/            OPC_CheckChild1Type, MVT::i32,
/* 27291*/            OPC_MoveParent,
/* 27292*/            OPC_RecordChild1, // #1 = $p1
/* 27293*/            OPC_CheckType, MVT::v4i1,
/* 27295*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 27297*/            OPC_EmitRegister, MVT::i32, ARM::ZR,
/* 27300*/            OPC_EmitInteger, MVT::i32, 13, 
/* 27303*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27306*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 2, 3, 4, 1, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 13:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 27317*/          0, /*End of Scope*/
/* 27318*/        0, /*End of Scope*/
/* 27319*/      /*SwitchOpcode*/ 22|128,8/*1046*/, TARGET_VAL(ARMISD::VCMP),// ->28369
/* 27323*/        OPC_RecordChild0, // #0 = $v1
/* 27324*/        OPC_Scope, 101|128,1/*229*/, /*->27556*/ // 5 children in Scope
/* 27327*/          OPC_CheckChild0Type, MVT::v16i8,
/* 27329*/          OPC_RecordChild1, // #1 = $v2
/* 27330*/          OPC_Scope, 27, /*->27359*/ // 8 children in Scope
/* 27332*/            OPC_CheckChild2Integer, 0, 
/* 27334*/            OPC_CheckChild2Type, MVT::i32,
/* 27336*/            OPC_MoveParent,
/* 27337*/            OPC_RecordChild1, // #2 = $p1
/* 27338*/            OPC_CheckType, MVT::v16i1,
/* 27340*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27342*/            OPC_EmitInteger, MVT::i32, 0, 
/* 27345*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27348*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 0:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPi8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 27359*/          /*Scope*/ 27, /*->27387*/
/* 27360*/            OPC_CheckChild2Integer, 1, 
/* 27362*/            OPC_CheckChild2Type, MVT::i32,
/* 27364*/            OPC_MoveParent,
/* 27365*/            OPC_RecordChild1, // #2 = $p1
/* 27366*/            OPC_CheckType, MVT::v16i1,
/* 27368*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27370*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27373*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27376*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 1:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPi8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 27387*/          /*Scope*/ 27, /*->27415*/
/* 27388*/            OPC_CheckChild2Integer, 10, 
/* 27390*/            OPC_CheckChild2Type, MVT::i32,
/* 27392*/            OPC_MoveParent,
/* 27393*/            OPC_RecordChild1, // #2 = $p1
/* 27394*/            OPC_CheckType, MVT::v16i1,
/* 27396*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27398*/            OPC_EmitInteger, MVT::i32, 10, 
/* 27401*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27404*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 10:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 27415*/          /*Scope*/ 27, /*->27443*/
/* 27416*/            OPC_CheckChild2Integer, 11, 
/* 27418*/            OPC_CheckChild2Type, MVT::i32,
/* 27420*/            OPC_MoveParent,
/* 27421*/            OPC_RecordChild1, // #2 = $p1
/* 27422*/            OPC_CheckType, MVT::v16i1,
/* 27424*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27426*/            OPC_EmitInteger, MVT::i32, 11, 
/* 27429*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27432*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 11:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 27443*/          /*Scope*/ 27, /*->27471*/
/* 27444*/            OPC_CheckChild2Integer, 12, 
/* 27446*/            OPC_CheckChild2Type, MVT::i32,
/* 27448*/            OPC_MoveParent,
/* 27449*/            OPC_RecordChild1, // #2 = $p1
/* 27450*/            OPC_CheckType, MVT::v16i1,
/* 27452*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27454*/            OPC_EmitInteger, MVT::i32, 12, 
/* 27457*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27460*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 12:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 27471*/          /*Scope*/ 27, /*->27499*/
/* 27472*/            OPC_CheckChild2Integer, 13, 
/* 27474*/            OPC_CheckChild2Type, MVT::i32,
/* 27476*/            OPC_MoveParent,
/* 27477*/            OPC_RecordChild1, // #2 = $p1
/* 27478*/            OPC_CheckType, MVT::v16i1,
/* 27480*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27482*/            OPC_EmitInteger, MVT::i32, 13, 
/* 27485*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27488*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 13:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 27499*/          /*Scope*/ 27, /*->27527*/
/* 27500*/            OPC_CheckChild2Integer, 8, 
/* 27502*/            OPC_CheckChild2Type, MVT::i32,
/* 27504*/            OPC_MoveParent,
/* 27505*/            OPC_RecordChild1, // #2 = $p1
/* 27506*/            OPC_CheckType, MVT::v16i1,
/* 27508*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27510*/            OPC_EmitInteger, MVT::i32, 8, 
/* 27513*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27516*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 8:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPu8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 27527*/          /*Scope*/ 27, /*->27555*/
/* 27528*/            OPC_CheckChild2Integer, 2, 
/* 27530*/            OPC_CheckChild2Type, MVT::i32,
/* 27532*/            OPC_MoveParent,
/* 27533*/            OPC_RecordChild1, // #2 = $p1
/* 27534*/            OPC_CheckType, MVT::v16i1,
/* 27536*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27538*/            OPC_EmitInteger, MVT::i32, 2, 
/* 27541*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27544*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v16i1] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 2:{ *:[i32] }), VCCR:{ *:[v16i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPu8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$p1)
/* 27555*/          0, /*End of Scope*/
/* 27556*/        /*Scope*/ 101|128,1/*229*/, /*->27787*/
/* 27558*/          OPC_CheckChild0Type, MVT::v8i16,
/* 27560*/          OPC_RecordChild1, // #1 = $v2
/* 27561*/          OPC_Scope, 27, /*->27590*/ // 8 children in Scope
/* 27563*/            OPC_CheckChild2Integer, 0, 
/* 27565*/            OPC_CheckChild2Type, MVT::i32,
/* 27567*/            OPC_MoveParent,
/* 27568*/            OPC_RecordChild1, // #2 = $p1
/* 27569*/            OPC_CheckType, MVT::v8i1,
/* 27571*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27573*/            OPC_EmitInteger, MVT::i32, 0, 
/* 27576*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27579*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 0:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPi16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 27590*/          /*Scope*/ 27, /*->27618*/
/* 27591*/            OPC_CheckChild2Integer, 1, 
/* 27593*/            OPC_CheckChild2Type, MVT::i32,
/* 27595*/            OPC_MoveParent,
/* 27596*/            OPC_RecordChild1, // #2 = $p1
/* 27597*/            OPC_CheckType, MVT::v8i1,
/* 27599*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27601*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27604*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27607*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 1:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPi16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 27618*/          /*Scope*/ 27, /*->27646*/
/* 27619*/            OPC_CheckChild2Integer, 10, 
/* 27621*/            OPC_CheckChild2Type, MVT::i32,
/* 27623*/            OPC_MoveParent,
/* 27624*/            OPC_RecordChild1, // #2 = $p1
/* 27625*/            OPC_CheckType, MVT::v8i1,
/* 27627*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27629*/            OPC_EmitInteger, MVT::i32, 10, 
/* 27632*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27635*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 10:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 27646*/          /*Scope*/ 27, /*->27674*/
/* 27647*/            OPC_CheckChild2Integer, 11, 
/* 27649*/            OPC_CheckChild2Type, MVT::i32,
/* 27651*/            OPC_MoveParent,
/* 27652*/            OPC_RecordChild1, // #2 = $p1
/* 27653*/            OPC_CheckType, MVT::v8i1,
/* 27655*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27657*/            OPC_EmitInteger, MVT::i32, 11, 
/* 27660*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27663*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 11:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 27674*/          /*Scope*/ 27, /*->27702*/
/* 27675*/            OPC_CheckChild2Integer, 12, 
/* 27677*/            OPC_CheckChild2Type, MVT::i32,
/* 27679*/            OPC_MoveParent,
/* 27680*/            OPC_RecordChild1, // #2 = $p1
/* 27681*/            OPC_CheckType, MVT::v8i1,
/* 27683*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27685*/            OPC_EmitInteger, MVT::i32, 12, 
/* 27688*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27691*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 12:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 27702*/          /*Scope*/ 27, /*->27730*/
/* 27703*/            OPC_CheckChild2Integer, 13, 
/* 27705*/            OPC_CheckChild2Type, MVT::i32,
/* 27707*/            OPC_MoveParent,
/* 27708*/            OPC_RecordChild1, // #2 = $p1
/* 27709*/            OPC_CheckType, MVT::v8i1,
/* 27711*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27713*/            OPC_EmitInteger, MVT::i32, 13, 
/* 27716*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27719*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 13:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 27730*/          /*Scope*/ 27, /*->27758*/
/* 27731*/            OPC_CheckChild2Integer, 8, 
/* 27733*/            OPC_CheckChild2Type, MVT::i32,
/* 27735*/            OPC_MoveParent,
/* 27736*/            OPC_RecordChild1, // #2 = $p1
/* 27737*/            OPC_CheckType, MVT::v8i1,
/* 27739*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27741*/            OPC_EmitInteger, MVT::i32, 8, 
/* 27744*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27747*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 8:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPu16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 27758*/          /*Scope*/ 27, /*->27786*/
/* 27759*/            OPC_CheckChild2Integer, 2, 
/* 27761*/            OPC_CheckChild2Type, MVT::i32,
/* 27763*/            OPC_MoveParent,
/* 27764*/            OPC_RecordChild1, // #2 = $p1
/* 27765*/            OPC_CheckType, MVT::v8i1,
/* 27767*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27769*/            OPC_EmitInteger, MVT::i32, 2, 
/* 27772*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27775*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 2:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPu16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 27786*/          0, /*End of Scope*/
/* 27787*/        /*Scope*/ 101|128,1/*229*/, /*->28018*/
/* 27789*/          OPC_CheckChild0Type, MVT::v4i32,
/* 27791*/          OPC_RecordChild1, // #1 = $v2
/* 27792*/          OPC_Scope, 27, /*->27821*/ // 8 children in Scope
/* 27794*/            OPC_CheckChild2Integer, 0, 
/* 27796*/            OPC_CheckChild2Type, MVT::i32,
/* 27798*/            OPC_MoveParent,
/* 27799*/            OPC_RecordChild1, // #2 = $p1
/* 27800*/            OPC_CheckType, MVT::v4i1,
/* 27802*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27804*/            OPC_EmitInteger, MVT::i32, 0, 
/* 27807*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27810*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 0:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPi32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 27821*/          /*Scope*/ 27, /*->27849*/
/* 27822*/            OPC_CheckChild2Integer, 1, 
/* 27824*/            OPC_CheckChild2Type, MVT::i32,
/* 27826*/            OPC_MoveParent,
/* 27827*/            OPC_RecordChild1, // #2 = $p1
/* 27828*/            OPC_CheckType, MVT::v4i1,
/* 27830*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27832*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27835*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27838*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 1:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPi32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 27849*/          /*Scope*/ 27, /*->27877*/
/* 27850*/            OPC_CheckChild2Integer, 10, 
/* 27852*/            OPC_CheckChild2Type, MVT::i32,
/* 27854*/            OPC_MoveParent,
/* 27855*/            OPC_RecordChild1, // #2 = $p1
/* 27856*/            OPC_CheckType, MVT::v4i1,
/* 27858*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27860*/            OPC_EmitInteger, MVT::i32, 10, 
/* 27863*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27866*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 10:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 27877*/          /*Scope*/ 27, /*->27905*/
/* 27878*/            OPC_CheckChild2Integer, 11, 
/* 27880*/            OPC_CheckChild2Type, MVT::i32,
/* 27882*/            OPC_MoveParent,
/* 27883*/            OPC_RecordChild1, // #2 = $p1
/* 27884*/            OPC_CheckType, MVT::v4i1,
/* 27886*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27888*/            OPC_EmitInteger, MVT::i32, 11, 
/* 27891*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27894*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 11:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 27905*/          /*Scope*/ 27, /*->27933*/
/* 27906*/            OPC_CheckChild2Integer, 12, 
/* 27908*/            OPC_CheckChild2Type, MVT::i32,
/* 27910*/            OPC_MoveParent,
/* 27911*/            OPC_RecordChild1, // #2 = $p1
/* 27912*/            OPC_CheckType, MVT::v4i1,
/* 27914*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27916*/            OPC_EmitInteger, MVT::i32, 12, 
/* 27919*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27922*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 12:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 27933*/          /*Scope*/ 27, /*->27961*/
/* 27934*/            OPC_CheckChild2Integer, 13, 
/* 27936*/            OPC_CheckChild2Type, MVT::i32,
/* 27938*/            OPC_MoveParent,
/* 27939*/            OPC_RecordChild1, // #2 = $p1
/* 27940*/            OPC_CheckType, MVT::v4i1,
/* 27942*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27944*/            OPC_EmitInteger, MVT::i32, 13, 
/* 27947*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27950*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 13:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPs32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 27961*/          /*Scope*/ 27, /*->27989*/
/* 27962*/            OPC_CheckChild2Integer, 8, 
/* 27964*/            OPC_CheckChild2Type, MVT::i32,
/* 27966*/            OPC_MoveParent,
/* 27967*/            OPC_RecordChild1, // #2 = $p1
/* 27968*/            OPC_CheckType, MVT::v4i1,
/* 27970*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 27972*/            OPC_EmitInteger, MVT::i32, 8, 
/* 27975*/            OPC_EmitInteger, MVT::i32, 1, 
/* 27978*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 8:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPu32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 8:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 27989*/          /*Scope*/ 27, /*->28017*/
/* 27990*/            OPC_CheckChild2Integer, 2, 
/* 27992*/            OPC_CheckChild2Type, MVT::i32,
/* 27994*/            OPC_MoveParent,
/* 27995*/            OPC_RecordChild1, // #2 = $p1
/* 27996*/            OPC_CheckType, MVT::v4i1,
/* 27998*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 28000*/            OPC_EmitInteger, MVT::i32, 2, 
/* 28003*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28006*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 2:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPu32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 28017*/          0, /*End of Scope*/
/* 28018*/        /*Scope*/ 45|128,1/*173*/, /*->28193*/
/* 28020*/          OPC_CheckChild0Type, MVT::v8f16,
/* 28022*/          OPC_RecordChild1, // #1 = $v2
/* 28023*/          OPC_Scope, 27, /*->28052*/ // 6 children in Scope
/* 28025*/            OPC_CheckChild2Integer, 0, 
/* 28027*/            OPC_CheckChild2Type, MVT::i32,
/* 28029*/            OPC_MoveParent,
/* 28030*/            OPC_RecordChild1, // #2 = $p1
/* 28031*/            OPC_CheckType, MVT::v8i1,
/* 28033*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 28035*/            OPC_EmitInteger, MVT::i32, 0, 
/* 28038*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28041*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 0:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 28052*/          /*Scope*/ 27, /*->28080*/
/* 28053*/            OPC_CheckChild2Integer, 1, 
/* 28055*/            OPC_CheckChild2Type, MVT::i32,
/* 28057*/            OPC_MoveParent,
/* 28058*/            OPC_RecordChild1, // #2 = $p1
/* 28059*/            OPC_CheckType, MVT::v8i1,
/* 28061*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 28063*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28066*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28069*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 1:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 28080*/          /*Scope*/ 27, /*->28108*/
/* 28081*/            OPC_CheckChild2Integer, 10, 
/* 28083*/            OPC_CheckChild2Type, MVT::i32,
/* 28085*/            OPC_MoveParent,
/* 28086*/            OPC_RecordChild1, // #2 = $p1
/* 28087*/            OPC_CheckType, MVT::v8i1,
/* 28089*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 28091*/            OPC_EmitInteger, MVT::i32, 10, 
/* 28094*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28097*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 10:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 28108*/          /*Scope*/ 27, /*->28136*/
/* 28109*/            OPC_CheckChild2Integer, 11, 
/* 28111*/            OPC_CheckChild2Type, MVT::i32,
/* 28113*/            OPC_MoveParent,
/* 28114*/            OPC_RecordChild1, // #2 = $p1
/* 28115*/            OPC_CheckType, MVT::v8i1,
/* 28117*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 28119*/            OPC_EmitInteger, MVT::i32, 11, 
/* 28122*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28125*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 11:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 28136*/          /*Scope*/ 27, /*->28164*/
/* 28137*/            OPC_CheckChild2Integer, 12, 
/* 28139*/            OPC_CheckChild2Type, MVT::i32,
/* 28141*/            OPC_MoveParent,
/* 28142*/            OPC_RecordChild1, // #2 = $p1
/* 28143*/            OPC_CheckType, MVT::v8i1,
/* 28145*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 28147*/            OPC_EmitInteger, MVT::i32, 12, 
/* 28150*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28153*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 12:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 28164*/          /*Scope*/ 27, /*->28192*/
/* 28165*/            OPC_CheckChild2Integer, 13, 
/* 28167*/            OPC_CheckChild2Type, MVT::i32,
/* 28169*/            OPC_MoveParent,
/* 28170*/            OPC_RecordChild1, // #2 = $p1
/* 28171*/            OPC_CheckType, MVT::v8i1,
/* 28173*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 28175*/            OPC_EmitInteger, MVT::i32, 13, 
/* 28178*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28181*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v8i1] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 13:{ *:[i32] }), VCCR:{ *:[v8i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$p1)
/* 28192*/          0, /*End of Scope*/
/* 28193*/        /*Scope*/ 45|128,1/*173*/, /*->28368*/
/* 28195*/          OPC_CheckChild0Type, MVT::v4f32,
/* 28197*/          OPC_RecordChild1, // #1 = $v2
/* 28198*/          OPC_Scope, 27, /*->28227*/ // 6 children in Scope
/* 28200*/            OPC_CheckChild2Integer, 0, 
/* 28202*/            OPC_CheckChild2Type, MVT::i32,
/* 28204*/            OPC_MoveParent,
/* 28205*/            OPC_RecordChild1, // #2 = $p1
/* 28206*/            OPC_CheckType, MVT::v4i1,
/* 28208*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 28210*/            OPC_EmitInteger, MVT::i32, 0, 
/* 28213*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28216*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 0:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 28227*/          /*Scope*/ 27, /*->28255*/
/* 28228*/            OPC_CheckChild2Integer, 1, 
/* 28230*/            OPC_CheckChild2Type, MVT::i32,
/* 28232*/            OPC_MoveParent,
/* 28233*/            OPC_RecordChild1, // #2 = $p1
/* 28234*/            OPC_CheckType, MVT::v4i1,
/* 28236*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 28238*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28241*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28244*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 1:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 28255*/          /*Scope*/ 27, /*->28283*/
/* 28256*/            OPC_CheckChild2Integer, 10, 
/* 28258*/            OPC_CheckChild2Type, MVT::i32,
/* 28260*/            OPC_MoveParent,
/* 28261*/            OPC_RecordChild1, // #2 = $p1
/* 28262*/            OPC_CheckType, MVT::v4i1,
/* 28264*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 28266*/            OPC_EmitInteger, MVT::i32, 10, 
/* 28269*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28272*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 10:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 10:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 28283*/          /*Scope*/ 27, /*->28311*/
/* 28284*/            OPC_CheckChild2Integer, 11, 
/* 28286*/            OPC_CheckChild2Type, MVT::i32,
/* 28288*/            OPC_MoveParent,
/* 28289*/            OPC_RecordChild1, // #2 = $p1
/* 28290*/            OPC_CheckType, MVT::v4i1,
/* 28292*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 28294*/            OPC_EmitInteger, MVT::i32, 11, 
/* 28297*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28300*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 11:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 11:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 28311*/          /*Scope*/ 27, /*->28339*/
/* 28312*/            OPC_CheckChild2Integer, 12, 
/* 28314*/            OPC_CheckChild2Type, MVT::i32,
/* 28316*/            OPC_MoveParent,
/* 28317*/            OPC_RecordChild1, // #2 = $p1
/* 28318*/            OPC_CheckType, MVT::v4i1,
/* 28320*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 28322*/            OPC_EmitInteger, MVT::i32, 12, 
/* 28325*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28328*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 12:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 12:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 28339*/          /*Scope*/ 27, /*->28367*/
/* 28340*/            OPC_CheckChild2Integer, 13, 
/* 28342*/            OPC_CheckChild2Type, MVT::i32,
/* 28344*/            OPC_MoveParent,
/* 28345*/            OPC_RecordChild1, // #2 = $p1
/* 28346*/            OPC_CheckType, MVT::v4i1,
/* 28348*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 28350*/            OPC_EmitInteger, MVT::i32, 13, 
/* 28353*/            OPC_EmitInteger, MVT::i32, 1, 
/* 28356*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 3, 4, 2, 
                      // Src: (and:{ *:[v4i1] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 13:{ *:[i32] }), VCCR:{ *:[v4i1] }:$p1) - Complexity = 11
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 13:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$p1)
/* 28367*/          0, /*End of Scope*/
/* 28368*/        0, /*End of Scope*/
/* 28369*/      0, // EndSwitchOpcode
/* 28370*/    /*Scope*/ 32|128,3/*416*/, /*->28788*/
/* 28372*/      OPC_RecordChild0, // #0 = $mask
/* 28373*/      OPC_Scope, 86, /*->28461*/ // 2 children in Scope
/* 28375*/        OPC_MoveChild1,
/* 28376*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 28379*/        OPC_Scope, 19, /*->28400*/ // 4 children in Scope
/* 28381*/          OPC_CheckChild0Integer, 58|128,12/*1594*/, 
/* 28384*/          OPC_RecordChild1, // #1 = $Rn
/* 28385*/          OPC_MoveParent,
/* 28386*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 28388*/          OPC_EmitInteger, MVT::i32, 1, 
/* 28391*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCTP8), 0,
                        MVT::v16i1, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$mask, (intrinsic_wo_chain:{ *:[v16i1] } 1594:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn)) - Complexity = 11
                    // Dst: (MVE_VCTP8:{ *:[v16i1] } rGPR:{ *:[i32] }:$Rn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 28400*/        /*Scope*/ 19, /*->28420*/
/* 28401*/          OPC_CheckChild0Integer, 55|128,12/*1591*/, 
/* 28404*/          OPC_RecordChild1, // #1 = $Rn
/* 28405*/          OPC_MoveParent,
/* 28406*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 28408*/          OPC_EmitInteger, MVT::i32, 1, 
/* 28411*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCTP16), 0,
                        MVT::v8i1, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$mask, (intrinsic_wo_chain:{ *:[v8i1] } 1591:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn)) - Complexity = 11
                    // Dst: (MVE_VCTP16:{ *:[v8i1] } rGPR:{ *:[i32] }:$Rn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 28420*/        /*Scope*/ 19, /*->28440*/
/* 28421*/          OPC_CheckChild0Integer, 56|128,12/*1592*/, 
/* 28424*/          OPC_RecordChild1, // #1 = $Rn
/* 28425*/          OPC_MoveParent,
/* 28426*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 28428*/          OPC_EmitInteger, MVT::i32, 1, 
/* 28431*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCTP32), 0,
                        MVT::v4i1, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$mask, (intrinsic_wo_chain:{ *:[v4i1] } 1592:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn)) - Complexity = 11
                    // Dst: (MVE_VCTP32:{ *:[v4i1] } rGPR:{ *:[i32] }:$Rn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 28440*/        /*Scope*/ 19, /*->28460*/
/* 28441*/          OPC_CheckChild0Integer, 57|128,12/*1593*/, 
/* 28444*/          OPC_RecordChild1, // #1 = $Rn
/* 28445*/          OPC_MoveParent,
/* 28446*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 28448*/          OPC_EmitInteger, MVT::i32, 1, 
/* 28451*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCTP64), 0,
                        MVT::v4i1, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$mask, (intrinsic_wo_chain:{ *:[v4i1] } 1593:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn)) - Complexity = 11
                    // Dst: (MVE_VCTP64:{ *:[v4i1] } rGPR:{ *:[i32] }:$Rn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 28460*/        0, /*End of Scope*/
/* 28461*/      /*Scope*/ 68|128,2/*324*/, /*->28787*/
/* 28463*/        OPC_RecordChild1, // #1 = $Vm
/* 28464*/        OPC_SwitchType /*8 cases */, 18, MVT::v2i32,// ->28485
/* 28467*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 28469*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28472*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28475*/          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)
/* 28485*/        /*SwitchType*/ 47, MVT::v4i32,// ->28534
/* 28487*/          OPC_Scope, 18, /*->28507*/ // 2 children in Scope
/* 28489*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 28491*/            OPC_EmitInteger, MVT::i32, 14, 
/* 28494*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28497*/            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)
/* 28507*/          /*Scope*/ 25, /*->28533*/
/* 28508*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 28510*/            OPC_EmitInteger, MVT::i32, 0, 
/* 28513*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28516*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 28522*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VAND), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (and:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                      // Dst: (MVE_VAND:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 28533*/          0, /*End of Scope*/
/* 28534*/        /*SwitchType*/ 25, MVT::v16i8,// ->28561
/* 28536*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 28538*/          OPC_EmitInteger, MVT::i32, 0, 
/* 28541*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28544*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 28550*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VAND), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (and:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VAND:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 28561*/        /*SwitchType*/ 25, MVT::v8i16,// ->28588
/* 28563*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 28565*/          OPC_EmitInteger, MVT::i32, 0, 
/* 28568*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28571*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 28577*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VAND), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (and:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VAND:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 28588*/        /*SwitchType*/ 25, MVT::v2i64,// ->28615
/* 28590*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 28592*/          OPC_EmitInteger, MVT::i32, 0, 
/* 28595*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28598*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 28604*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VAND), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (and:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VAND:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
/* 28615*/        /*SwitchType*/ 55, MVT::v16i1,// ->28672
/* 28617*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 28619*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 28622*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 28630*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 28633*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 28641*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28644*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28647*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28650*/          OPC_EmitNode1, TARGET_VAL(ARM::t2ANDrr), 0,
                        MVT::i32, 5/*#Ops*/, 3, 5, 6, 7, 8,  // Results = #9
/* 28661*/          OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/* 28664*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 9, 10, 
                    // Src: (and:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, VCCR:{ *:[v16i1] }:$p2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (t2ANDrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
/* 28672*/        /*SwitchType*/ 55, MVT::v8i1,// ->28729
/* 28674*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 28676*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 28679*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 28687*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 28690*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 28698*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28701*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28704*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28707*/          OPC_EmitNode1, TARGET_VAL(ARM::t2ANDrr), 0,
                        MVT::i32, 5/*#Ops*/, 3, 5, 6, 7, 8,  // Results = #9
/* 28718*/          OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/* 28721*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 9, 10, 
                    // Src: (and:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, VCCR:{ *:[v8i1] }:$p2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (t2ANDrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
/* 28729*/        /*SwitchType*/ 55, MVT::v4i1,// ->28786
/* 28731*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 28733*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 28736*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 28744*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 28747*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 28755*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28758*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28761*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28764*/          OPC_EmitNode1, TARGET_VAL(ARM::t2ANDrr), 0,
                        MVT::i32, 5/*#Ops*/, 3, 5, 6, 7, 8,  // Results = #9
/* 28775*/          OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/* 28778*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 9, 10, 
                    // Src: (and:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, VCCR:{ *:[v4i1] }:$p2) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (t2ANDrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
/* 28786*/        0, // EndSwitchType
/* 28787*/      0, /*End of Scope*/
/* 28788*/    0, /*End of Scope*/
/* 28789*/  /*SwitchOpcode*/ 44|128,120|128,1/*31788*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->60582
/* 28794*/    OPC_Scope, 120, /*->28916*/ // 235 children in Scope
/* 28796*/      OPC_CheckChild0Integer, 69|128,14/*1861*/, 
/* 28799*/      OPC_Scope, 66, /*->28867*/ // 2 children in Scope
/* 28801*/        OPC_MoveChild1,
/* 28802*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 28805*/        OPC_RecordChild0, // #0 = $Src
/* 28806*/        OPC_RecordChild1, // #1 = $rot
/* 28807*/        OPC_MoveChild1,
/* 28808*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28811*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 28813*/        OPC_CheckType, MVT::i32,
/* 28815*/        OPC_MoveParent,
/* 28816*/        OPC_MoveParent,
/* 28817*/        OPC_Scope, 23, /*->28842*/ // 2 children in Scope
/* 28819*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 28821*/          OPC_EmitConvertToTarget, 1,
/* 28823*/          OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 28826*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28829*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28832*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTB16), 0,
                        MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1861:{ *:[iPTR] }, (rotr:{ *:[i32] } GPR:{ *:[i32] }:$Src, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot)) - Complexity = 31
                    // Dst: (UXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/* 28842*/        /*Scope*/ 23, /*->28866*/
/* 28843*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 28845*/          OPC_EmitConvertToTarget, 1,
/* 28847*/          OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 28850*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28853*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28856*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTB16), 0,
                        MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1861:{ *:[iPTR] }, (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot)) - Complexity = 31
                    // Dst: (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/* 28866*/        0, /*End of Scope*/
/* 28867*/      /*Scope*/ 47, /*->28915*/
/* 28868*/        OPC_RecordChild1, // #0 = $Src
/* 28869*/        OPC_Scope, 21, /*->28892*/ // 2 children in Scope
/* 28871*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 28873*/          OPC_EmitInteger, MVT::i32, 0, 
/* 28876*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28879*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28882*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTB16), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1861:{ *:[iPTR] }, GPR:{ *:[i32] }:$Src) - Complexity = 24
                    // Dst: (UXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
/* 28892*/        /*Scope*/ 21, /*->28914*/
/* 28893*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 28895*/          OPC_EmitInteger, MVT::i32, 0, 
/* 28898*/          OPC_EmitInteger, MVT::i32, 14, 
/* 28901*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28904*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTB16), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1861:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm) - Complexity = 24
                    // Dst: (t2UXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/* 28914*/        0, /*End of Scope*/
/* 28915*/      0, /*End of Scope*/
/* 28916*/    /*Scope*/ 8|128,1/*136*/, /*->29054*/
/* 28918*/      OPC_CheckChild0Integer, 68|128,14/*1860*/, 
/* 28921*/      OPC_RecordChild1, // #0 = $Rn
/* 28922*/      OPC_Scope, 40, /*->28964*/ // 4 children in Scope
/* 28924*/        OPC_MoveChild2,
/* 28925*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 28928*/        OPC_RecordChild0, // #1 = $Rm
/* 28929*/        OPC_RecordChild1, // #2 = $rot
/* 28930*/        OPC_MoveChild1,
/* 28931*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28934*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 28936*/        OPC_CheckType, MVT::i32,
/* 28938*/        OPC_MoveParent,
/* 28939*/        OPC_MoveParent,
/* 28940*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 28942*/        OPC_EmitConvertToTarget, 2,
/* 28944*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/* 28947*/        OPC_EmitInteger, MVT::i32, 14, 
/* 28950*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28953*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAB16), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1860:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot)) - Complexity = 31
                  // Dst: (t2UXTAB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/* 28964*/      /*Scope*/ 23, /*->28988*/
/* 28965*/        OPC_RecordChild2, // #1 = $Rm
/* 28966*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 28968*/        OPC_EmitInteger, MVT::i32, 0, 
/* 28971*/        OPC_EmitInteger, MVT::i32, 14, 
/* 28974*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 28977*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UXTAB16), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1860:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 24
                  // Dst: (t2UXTAB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/* 28988*/      /*Scope*/ 40, /*->29029*/
/* 28989*/        OPC_MoveChild2,
/* 28990*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 28993*/        OPC_RecordChild0, // #1 = $RHS
/* 28994*/        OPC_RecordChild1, // #2 = $rot
/* 28995*/        OPC_MoveChild1,
/* 28996*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 28999*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 29001*/        OPC_CheckType, MVT::i32,
/* 29003*/        OPC_MoveParent,
/* 29004*/        OPC_MoveParent,
/* 29005*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 29007*/        OPC_EmitConvertToTarget, 2,
/* 29009*/        OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/* 29012*/        OPC_EmitInteger, MVT::i32, 14, 
/* 29015*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29018*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAB16), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1860:{ *:[iPTR] }, GPR:{ *:[i32] }:$LHS, (rotr:{ *:[i32] } GPR:{ *:[i32] }:$RHS, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot)) - Complexity = 15
                  // Dst: (UXTAB16:{ *:[i32] } GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/* 29029*/      /*Scope*/ 23, /*->29053*/
/* 29030*/        OPC_RecordChild2, // #1 = $RHS
/* 29031*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 29033*/        OPC_EmitInteger, MVT::i32, 0, 
/* 29036*/        OPC_EmitInteger, MVT::i32, 14, 
/* 29039*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29042*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UXTAB16), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1860:{ *:[iPTR] }, GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS) - Complexity = 8
                  // Dst: (UXTAB16:{ *:[i32] } GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS, 0:{ *:[i32] })
/* 29053*/      0, /*End of Scope*/
/* 29054*/    /*Scope*/ 79|128,6/*847*/, /*->29903*/
/* 29056*/      OPC_CheckChild0Integer, 71|128,12/*1607*/, 
/* 29059*/      OPC_Scope, 32|128,5/*672*/, /*->29734*/ // 2 children in Scope
/* 29062*/        OPC_CheckChild1Integer, 0, 
/* 29064*/        OPC_Scope, 76|128,2/*332*/, /*->29399*/ // 2 children in Scope
/* 29067*/          OPC_CheckChild2Integer, 0, 
/* 29069*/          OPC_Scope, 34|128,1/*162*/, /*->29234*/ // 2 children in Scope
/* 29072*/            OPC_CheckChild3Integer, 0, 
/* 29074*/            OPC_Scope, 77, /*->29153*/ // 2 children in Scope
/* 29076*/              OPC_CheckChild4Integer, 0, 
/* 29078*/              OPC_RecordChild5, // #0 = $Qn
/* 29079*/              OPC_Scope, 23, /*->29104*/ // 3 children in Scope
/* 29081*/                OPC_CheckChild5Type, MVT::v16i8,
/* 29083*/                OPC_RecordChild6, // #1 = $Qm
/* 29084*/                OPC_CheckChild6Type, MVT::v16i8,
/* 29086*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29088*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29091*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29094*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVs8), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) - Complexity = 28
                          // Dst: (MVE_VMLADAVs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
/* 29104*/              /*Scope*/ 23, /*->29128*/
/* 29105*/                OPC_CheckChild5Type, MVT::v8i16,
/* 29107*/                OPC_RecordChild6, // #1 = $Qm
/* 29108*/                OPC_CheckChild6Type, MVT::v8i16,
/* 29110*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29112*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29115*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29118*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVs16), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) - Complexity = 28
                          // Dst: (MVE_VMLADAVs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
/* 29128*/              /*Scope*/ 23, /*->29152*/
/* 29129*/                OPC_CheckChild5Type, MVT::v4i32,
/* 29131*/                OPC_RecordChild6, // #1 = $Qm
/* 29132*/                OPC_CheckChild6Type, MVT::v4i32,
/* 29134*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29136*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29139*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29142*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVs32), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) - Complexity = 28
                          // Dst: (MVE_VMLADAVs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
/* 29152*/              0, /*End of Scope*/
/* 29153*/            /*Scope*/ 79, /*->29233*/
/* 29154*/              OPC_RecordChild4, // #0 = $RdaSrc
/* 29155*/              OPC_RecordChild5, // #1 = $Qn
/* 29156*/              OPC_Scope, 24, /*->29182*/ // 3 children in Scope
/* 29158*/                OPC_CheckChild5Type, MVT::v16i8,
/* 29160*/                OPC_RecordChild6, // #2 = $Qm
/* 29161*/                OPC_CheckChild6Type, MVT::v16i8,
/* 29163*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29165*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29168*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29171*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVas8), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) - Complexity = 23
                          // Dst: (MVE_VMLADAVas8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
/* 29182*/              /*Scope*/ 24, /*->29207*/
/* 29183*/                OPC_CheckChild5Type, MVT::v8i16,
/* 29185*/                OPC_RecordChild6, // #2 = $Qm
/* 29186*/                OPC_CheckChild6Type, MVT::v8i16,
/* 29188*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29190*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29193*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29196*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVas16), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) - Complexity = 23
                          // Dst: (MVE_VMLADAVas16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
/* 29207*/              /*Scope*/ 24, /*->29232*/
/* 29208*/                OPC_CheckChild5Type, MVT::v4i32,
/* 29210*/                OPC_RecordChild6, // #2 = $Qm
/* 29211*/                OPC_CheckChild6Type, MVT::v4i32,
/* 29213*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29215*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29218*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29221*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVas32), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) - Complexity = 23
                          // Dst: (MVE_VMLADAVas32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
/* 29232*/              0, /*End of Scope*/
/* 29233*/            0, /*End of Scope*/
/* 29234*/          /*Scope*/ 34|128,1/*162*/, /*->29398*/
/* 29236*/            OPC_CheckChild3Integer, 1, 
/* 29238*/            OPC_Scope, 77, /*->29317*/ // 2 children in Scope
/* 29240*/              OPC_CheckChild4Integer, 0, 
/* 29242*/              OPC_RecordChild5, // #0 = $Qn
/* 29243*/              OPC_Scope, 23, /*->29268*/ // 3 children in Scope
/* 29245*/                OPC_CheckChild5Type, MVT::v16i8,
/* 29247*/                OPC_RecordChild6, // #1 = $Qm
/* 29248*/                OPC_CheckChild6Type, MVT::v16i8,
/* 29250*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29252*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29255*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29258*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVxs8), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) - Complexity = 28
                          // Dst: (MVE_VMLADAVxs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
/* 29268*/              /*Scope*/ 23, /*->29292*/
/* 29269*/                OPC_CheckChild5Type, MVT::v8i16,
/* 29271*/                OPC_RecordChild6, // #1 = $Qm
/* 29272*/                OPC_CheckChild6Type, MVT::v8i16,
/* 29274*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29276*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29279*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29282*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVxs16), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) - Complexity = 28
                          // Dst: (MVE_VMLADAVxs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
/* 29292*/              /*Scope*/ 23, /*->29316*/
/* 29293*/                OPC_CheckChild5Type, MVT::v4i32,
/* 29295*/                OPC_RecordChild6, // #1 = $Qm
/* 29296*/                OPC_CheckChild6Type, MVT::v4i32,
/* 29298*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29300*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29303*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29306*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVxs32), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) - Complexity = 28
                          // Dst: (MVE_VMLADAVxs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
/* 29316*/              0, /*End of Scope*/
/* 29317*/            /*Scope*/ 79, /*->29397*/
/* 29318*/              OPC_RecordChild4, // #0 = $RdaSrc
/* 29319*/              OPC_RecordChild5, // #1 = $Qn
/* 29320*/              OPC_Scope, 24, /*->29346*/ // 3 children in Scope
/* 29322*/                OPC_CheckChild5Type, MVT::v16i8,
/* 29324*/                OPC_RecordChild6, // #2 = $Qm
/* 29325*/                OPC_CheckChild6Type, MVT::v16i8,
/* 29327*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29329*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29332*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29335*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVaxs8), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) - Complexity = 23
                          // Dst: (MVE_VMLADAVaxs8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
/* 29346*/              /*Scope*/ 24, /*->29371*/
/* 29347*/                OPC_CheckChild5Type, MVT::v8i16,
/* 29349*/                OPC_RecordChild6, // #2 = $Qm
/* 29350*/                OPC_CheckChild6Type, MVT::v8i16,
/* 29352*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29354*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29357*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29360*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVaxs16), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) - Complexity = 23
                          // Dst: (MVE_VMLADAVaxs16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
/* 29371*/              /*Scope*/ 24, /*->29396*/
/* 29372*/                OPC_CheckChild5Type, MVT::v4i32,
/* 29374*/                OPC_RecordChild6, // #2 = $Qm
/* 29375*/                OPC_CheckChild6Type, MVT::v4i32,
/* 29377*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29379*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29382*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29385*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVaxs32), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) - Complexity = 23
                          // Dst: (MVE_VMLADAVaxs32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
/* 29396*/              0, /*End of Scope*/
/* 29397*/            0, /*End of Scope*/
/* 29398*/          0, /*End of Scope*/
/* 29399*/        /*Scope*/ 76|128,2/*332*/, /*->29733*/
/* 29401*/          OPC_CheckChild2Integer, 1, 
/* 29403*/          OPC_Scope, 34|128,1/*162*/, /*->29568*/ // 2 children in Scope
/* 29406*/            OPC_CheckChild3Integer, 0, 
/* 29408*/            OPC_Scope, 77, /*->29487*/ // 2 children in Scope
/* 29410*/              OPC_CheckChild4Integer, 0, 
/* 29412*/              OPC_RecordChild5, // #0 = $Qn
/* 29413*/              OPC_Scope, 23, /*->29438*/ // 3 children in Scope
/* 29415*/                OPC_CheckChild5Type, MVT::v16i8,
/* 29417*/                OPC_RecordChild6, // #1 = $Qm
/* 29418*/                OPC_CheckChild6Type, MVT::v16i8,
/* 29420*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29422*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29425*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29428*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVs8), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) - Complexity = 28
                          // Dst: (MVE_VMLSDAVs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
/* 29438*/              /*Scope*/ 23, /*->29462*/
/* 29439*/                OPC_CheckChild5Type, MVT::v8i16,
/* 29441*/                OPC_RecordChild6, // #1 = $Qm
/* 29442*/                OPC_CheckChild6Type, MVT::v8i16,
/* 29444*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29446*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29449*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29452*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVs16), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) - Complexity = 28
                          // Dst: (MVE_VMLSDAVs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
/* 29462*/              /*Scope*/ 23, /*->29486*/
/* 29463*/                OPC_CheckChild5Type, MVT::v4i32,
/* 29465*/                OPC_RecordChild6, // #1 = $Qm
/* 29466*/                OPC_CheckChild6Type, MVT::v4i32,
/* 29468*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29470*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29473*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29476*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVs32), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) - Complexity = 28
                          // Dst: (MVE_VMLSDAVs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
/* 29486*/              0, /*End of Scope*/
/* 29487*/            /*Scope*/ 79, /*->29567*/
/* 29488*/              OPC_RecordChild4, // #0 = $RdaSrc
/* 29489*/              OPC_RecordChild5, // #1 = $Qn
/* 29490*/              OPC_Scope, 24, /*->29516*/ // 3 children in Scope
/* 29492*/                OPC_CheckChild5Type, MVT::v16i8,
/* 29494*/                OPC_RecordChild6, // #2 = $Qm
/* 29495*/                OPC_CheckChild6Type, MVT::v16i8,
/* 29497*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29499*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29502*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29505*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVas8), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) - Complexity = 23
                          // Dst: (MVE_VMLSDAVas8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
/* 29516*/              /*Scope*/ 24, /*->29541*/
/* 29517*/                OPC_CheckChild5Type, MVT::v8i16,
/* 29519*/                OPC_RecordChild6, // #2 = $Qm
/* 29520*/                OPC_CheckChild6Type, MVT::v8i16,
/* 29522*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29524*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29527*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29530*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVas16), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) - Complexity = 23
                          // Dst: (MVE_VMLSDAVas16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
/* 29541*/              /*Scope*/ 24, /*->29566*/
/* 29542*/                OPC_CheckChild5Type, MVT::v4i32,
/* 29544*/                OPC_RecordChild6, // #2 = $Qm
/* 29545*/                OPC_CheckChild6Type, MVT::v4i32,
/* 29547*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29549*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29552*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29555*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVas32), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) - Complexity = 23
                          // Dst: (MVE_VMLSDAVas32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
/* 29566*/              0, /*End of Scope*/
/* 29567*/            0, /*End of Scope*/
/* 29568*/          /*Scope*/ 34|128,1/*162*/, /*->29732*/
/* 29570*/            OPC_CheckChild3Integer, 1, 
/* 29572*/            OPC_Scope, 77, /*->29651*/ // 2 children in Scope
/* 29574*/              OPC_CheckChild4Integer, 0, 
/* 29576*/              OPC_RecordChild5, // #0 = $Qn
/* 29577*/              OPC_Scope, 23, /*->29602*/ // 3 children in Scope
/* 29579*/                OPC_CheckChild5Type, MVT::v16i8,
/* 29581*/                OPC_RecordChild6, // #1 = $Qm
/* 29582*/                OPC_CheckChild6Type, MVT::v16i8,
/* 29584*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29586*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29589*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29592*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVxs8), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) - Complexity = 28
                          // Dst: (MVE_VMLSDAVxs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
/* 29602*/              /*Scope*/ 23, /*->29626*/
/* 29603*/                OPC_CheckChild5Type, MVT::v8i16,
/* 29605*/                OPC_RecordChild6, // #1 = $Qm
/* 29606*/                OPC_CheckChild6Type, MVT::v8i16,
/* 29608*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29610*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29613*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29616*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVxs16), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) - Complexity = 28
                          // Dst: (MVE_VMLSDAVxs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
/* 29626*/              /*Scope*/ 23, /*->29650*/
/* 29627*/                OPC_CheckChild5Type, MVT::v4i32,
/* 29629*/                OPC_RecordChild6, // #1 = $Qm
/* 29630*/                OPC_CheckChild6Type, MVT::v4i32,
/* 29632*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29634*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29637*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29640*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVxs32), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) - Complexity = 28
                          // Dst: (MVE_VMLSDAVxs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
/* 29650*/              0, /*End of Scope*/
/* 29651*/            /*Scope*/ 79, /*->29731*/
/* 29652*/              OPC_RecordChild4, // #0 = $RdaSrc
/* 29653*/              OPC_RecordChild5, // #1 = $Qn
/* 29654*/              OPC_Scope, 24, /*->29680*/ // 3 children in Scope
/* 29656*/                OPC_CheckChild5Type, MVT::v16i8,
/* 29658*/                OPC_RecordChild6, // #2 = $Qm
/* 29659*/                OPC_CheckChild6Type, MVT::v16i8,
/* 29661*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29663*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29666*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29669*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVaxs8), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) - Complexity = 23
                          // Dst: (MVE_VMLSDAVaxs8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
/* 29680*/              /*Scope*/ 24, /*->29705*/
/* 29681*/                OPC_CheckChild5Type, MVT::v8i16,
/* 29683*/                OPC_RecordChild6, // #2 = $Qm
/* 29684*/                OPC_CheckChild6Type, MVT::v8i16,
/* 29686*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29688*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29691*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29694*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVaxs16), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) - Complexity = 23
                          // Dst: (MVE_VMLSDAVaxs16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
/* 29705*/              /*Scope*/ 24, /*->29730*/
/* 29706*/                OPC_CheckChild5Type, MVT::v4i32,
/* 29708*/                OPC_RecordChild6, // #2 = $Qm
/* 29709*/                OPC_CheckChild6Type, MVT::v4i32,
/* 29711*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29713*/                OPC_EmitInteger, MVT::i32, 0, 
/* 29716*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29719*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVaxs32), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) - Complexity = 23
                          // Dst: (MVE_VMLSDAVaxs32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
/* 29730*/              0, /*End of Scope*/
/* 29731*/            0, /*End of Scope*/
/* 29732*/          0, /*End of Scope*/
/* 29733*/        0, /*End of Scope*/
/* 29734*/      /*Scope*/ 38|128,1/*166*/, /*->29902*/
/* 29736*/        OPC_CheckChild1Integer, 1, 
/* 29738*/        OPC_CheckChild2Integer, 0, 
/* 29740*/        OPC_CheckChild3Integer, 0, 
/* 29742*/        OPC_Scope, 77, /*->29821*/ // 2 children in Scope
/* 29744*/          OPC_CheckChild4Integer, 0, 
/* 29746*/          OPC_RecordChild5, // #0 = $Qn
/* 29747*/          OPC_Scope, 23, /*->29772*/ // 3 children in Scope
/* 29749*/            OPC_CheckChild5Type, MVT::v16i8,
/* 29751*/            OPC_RecordChild6, // #1 = $Qm
/* 29752*/            OPC_CheckChild6Type, MVT::v16i8,
/* 29754*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29756*/            OPC_EmitInteger, MVT::i32, 0, 
/* 29759*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29762*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVu8), 0,
                          MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) - Complexity = 28
                      // Dst: (MVE_VMLADAVu8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
/* 29772*/          /*Scope*/ 23, /*->29796*/
/* 29773*/            OPC_CheckChild5Type, MVT::v8i16,
/* 29775*/            OPC_RecordChild6, // #1 = $Qm
/* 29776*/            OPC_CheckChild6Type, MVT::v8i16,
/* 29778*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29780*/            OPC_EmitInteger, MVT::i32, 0, 
/* 29783*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29786*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVu16), 0,
                          MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) - Complexity = 28
                      // Dst: (MVE_VMLADAVu16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
/* 29796*/          /*Scope*/ 23, /*->29820*/
/* 29797*/            OPC_CheckChild5Type, MVT::v4i32,
/* 29799*/            OPC_RecordChild6, // #1 = $Qm
/* 29800*/            OPC_CheckChild6Type, MVT::v4i32,
/* 29802*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29804*/            OPC_EmitInteger, MVT::i32, 0, 
/* 29807*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29810*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVu32), 0,
                          MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) - Complexity = 28
                      // Dst: (MVE_VMLADAVu32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
/* 29820*/          0, /*End of Scope*/
/* 29821*/        /*Scope*/ 79, /*->29901*/
/* 29822*/          OPC_RecordChild4, // #0 = $RdaSrc
/* 29823*/          OPC_RecordChild5, // #1 = $Qn
/* 29824*/          OPC_Scope, 24, /*->29850*/ // 3 children in Scope
/* 29826*/            OPC_CheckChild5Type, MVT::v16i8,
/* 29828*/            OPC_RecordChild6, // #2 = $Qm
/* 29829*/            OPC_CheckChild6Type, MVT::v16i8,
/* 29831*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29833*/            OPC_EmitInteger, MVT::i32, 0, 
/* 29836*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29839*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVau8), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) - Complexity = 23
                      // Dst: (MVE_VMLADAVau8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
/* 29850*/          /*Scope*/ 24, /*->29875*/
/* 29851*/            OPC_CheckChild5Type, MVT::v8i16,
/* 29853*/            OPC_RecordChild6, // #2 = $Qm
/* 29854*/            OPC_CheckChild6Type, MVT::v8i16,
/* 29856*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29858*/            OPC_EmitInteger, MVT::i32, 0, 
/* 29861*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29864*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVau16), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) - Complexity = 23
                      // Dst: (MVE_VMLADAVau16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
/* 29875*/          /*Scope*/ 24, /*->29900*/
/* 29876*/            OPC_CheckChild5Type, MVT::v4i32,
/* 29878*/            OPC_RecordChild6, // #2 = $Qm
/* 29879*/            OPC_CheckChild6Type, MVT::v4i32,
/* 29881*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29883*/            OPC_EmitInteger, MVT::i32, 0, 
/* 29886*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 29889*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVau32), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1607:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) - Complexity = 23
                      // Dst: (MVE_VMLADAVau32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
/* 29900*/          0, /*End of Scope*/
/* 29901*/        0, /*End of Scope*/
/* 29902*/      0, /*End of Scope*/
/* 29903*/    /*Scope*/ 79|128,6/*847*/, /*->30752*/
/* 29905*/      OPC_CheckChild0Integer, 72|128,12/*1608*/, 
/* 29908*/      OPC_Scope, 32|128,5/*672*/, /*->30583*/ // 2 children in Scope
/* 29911*/        OPC_CheckChild1Integer, 0, 
/* 29913*/        OPC_Scope, 76|128,2/*332*/, /*->30248*/ // 2 children in Scope
/* 29916*/          OPC_CheckChild2Integer, 0, 
/* 29918*/          OPC_Scope, 34|128,1/*162*/, /*->30083*/ // 2 children in Scope
/* 29921*/            OPC_CheckChild3Integer, 0, 
/* 29923*/            OPC_Scope, 77, /*->30002*/ // 2 children in Scope
/* 29925*/              OPC_CheckChild4Integer, 0, 
/* 29927*/              OPC_RecordChild5, // #0 = $Qn
/* 29928*/              OPC_Scope, 23, /*->29953*/ // 3 children in Scope
/* 29930*/                OPC_CheckChild5Type, MVT::v16i8,
/* 29932*/                OPC_RecordChild6, // #1 = $Qm
/* 29933*/                OPC_CheckChild6Type, MVT::v16i8,
/* 29935*/                OPC_RecordChild7, // #2 = $mask
/* 29936*/                OPC_CheckChild7Type, MVT::v16i1,
/* 29938*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29940*/                OPC_EmitInteger, MVT::i32, 1, 
/* 29943*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVs8), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, VCCR:{ *:[v16i1] }:$mask) - Complexity = 28
                          // Dst: (MVE_VMLADAVs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 29953*/              /*Scope*/ 23, /*->29977*/
/* 29954*/                OPC_CheckChild5Type, MVT::v8i16,
/* 29956*/                OPC_RecordChild6, // #1 = $Qm
/* 29957*/                OPC_CheckChild6Type, MVT::v8i16,
/* 29959*/                OPC_RecordChild7, // #2 = $mask
/* 29960*/                OPC_CheckChild7Type, MVT::v8i1,
/* 29962*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29964*/                OPC_EmitInteger, MVT::i32, 1, 
/* 29967*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVs16), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 28
                          // Dst: (MVE_VMLADAVs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 29977*/              /*Scope*/ 23, /*->30001*/
/* 29978*/                OPC_CheckChild5Type, MVT::v4i32,
/* 29980*/                OPC_RecordChild6, // #1 = $Qm
/* 29981*/                OPC_CheckChild6Type, MVT::v4i32,
/* 29983*/                OPC_RecordChild7, // #2 = $mask
/* 29984*/                OPC_CheckChild7Type, MVT::v4i1,
/* 29986*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 29988*/                OPC_EmitInteger, MVT::i32, 1, 
/* 29991*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVs32), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 28
                          // Dst: (MVE_VMLADAVs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 30001*/              0, /*End of Scope*/
/* 30002*/            /*Scope*/ 79, /*->30082*/
/* 30003*/              OPC_RecordChild4, // #0 = $RdaSrc
/* 30004*/              OPC_RecordChild5, // #1 = $Qn
/* 30005*/              OPC_Scope, 24, /*->30031*/ // 3 children in Scope
/* 30007*/                OPC_CheckChild5Type, MVT::v16i8,
/* 30009*/                OPC_RecordChild6, // #2 = $Qm
/* 30010*/                OPC_CheckChild6Type, MVT::v16i8,
/* 30012*/                OPC_RecordChild7, // #3 = $mask
/* 30013*/                OPC_CheckChild7Type, MVT::v16i1,
/* 30015*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30017*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30020*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVas8), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, VCCR:{ *:[v16i1] }:$mask) - Complexity = 23
                          // Dst: (MVE_VMLADAVas8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 30031*/              /*Scope*/ 24, /*->30056*/
/* 30032*/                OPC_CheckChild5Type, MVT::v8i16,
/* 30034*/                OPC_RecordChild6, // #2 = $Qm
/* 30035*/                OPC_CheckChild6Type, MVT::v8i16,
/* 30037*/                OPC_RecordChild7, // #3 = $mask
/* 30038*/                OPC_CheckChild7Type, MVT::v8i1,
/* 30040*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30042*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30045*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVas16), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 23
                          // Dst: (MVE_VMLADAVas16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 30056*/              /*Scope*/ 24, /*->30081*/
/* 30057*/                OPC_CheckChild5Type, MVT::v4i32,
/* 30059*/                OPC_RecordChild6, // #2 = $Qm
/* 30060*/                OPC_CheckChild6Type, MVT::v4i32,
/* 30062*/                OPC_RecordChild7, // #3 = $mask
/* 30063*/                OPC_CheckChild7Type, MVT::v4i1,
/* 30065*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30067*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30070*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVas32), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 23
                          // Dst: (MVE_VMLADAVas32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 30081*/              0, /*End of Scope*/
/* 30082*/            0, /*End of Scope*/
/* 30083*/          /*Scope*/ 34|128,1/*162*/, /*->30247*/
/* 30085*/            OPC_CheckChild3Integer, 1, 
/* 30087*/            OPC_Scope, 77, /*->30166*/ // 2 children in Scope
/* 30089*/              OPC_CheckChild4Integer, 0, 
/* 30091*/              OPC_RecordChild5, // #0 = $Qn
/* 30092*/              OPC_Scope, 23, /*->30117*/ // 3 children in Scope
/* 30094*/                OPC_CheckChild5Type, MVT::v16i8,
/* 30096*/                OPC_RecordChild6, // #1 = $Qm
/* 30097*/                OPC_CheckChild6Type, MVT::v16i8,
/* 30099*/                OPC_RecordChild7, // #2 = $mask
/* 30100*/                OPC_CheckChild7Type, MVT::v16i1,
/* 30102*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30104*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30107*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVxs8), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, VCCR:{ *:[v16i1] }:$mask) - Complexity = 28
                          // Dst: (MVE_VMLADAVxs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 30117*/              /*Scope*/ 23, /*->30141*/
/* 30118*/                OPC_CheckChild5Type, MVT::v8i16,
/* 30120*/                OPC_RecordChild6, // #1 = $Qm
/* 30121*/                OPC_CheckChild6Type, MVT::v8i16,
/* 30123*/                OPC_RecordChild7, // #2 = $mask
/* 30124*/                OPC_CheckChild7Type, MVT::v8i1,
/* 30126*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30128*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30131*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVxs16), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 28
                          // Dst: (MVE_VMLADAVxs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 30141*/              /*Scope*/ 23, /*->30165*/
/* 30142*/                OPC_CheckChild5Type, MVT::v4i32,
/* 30144*/                OPC_RecordChild6, // #1 = $Qm
/* 30145*/                OPC_CheckChild6Type, MVT::v4i32,
/* 30147*/                OPC_RecordChild7, // #2 = $mask
/* 30148*/                OPC_CheckChild7Type, MVT::v4i1,
/* 30150*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30152*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30155*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVxs32), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 28
                          // Dst: (MVE_VMLADAVxs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 30165*/              0, /*End of Scope*/
/* 30166*/            /*Scope*/ 79, /*->30246*/
/* 30167*/              OPC_RecordChild4, // #0 = $RdaSrc
/* 30168*/              OPC_RecordChild5, // #1 = $Qn
/* 30169*/              OPC_Scope, 24, /*->30195*/ // 3 children in Scope
/* 30171*/                OPC_CheckChild5Type, MVT::v16i8,
/* 30173*/                OPC_RecordChild6, // #2 = $Qm
/* 30174*/                OPC_CheckChild6Type, MVT::v16i8,
/* 30176*/                OPC_RecordChild7, // #3 = $mask
/* 30177*/                OPC_CheckChild7Type, MVT::v16i1,
/* 30179*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30181*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30184*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVaxs8), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, VCCR:{ *:[v16i1] }:$mask) - Complexity = 23
                          // Dst: (MVE_VMLADAVaxs8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 30195*/              /*Scope*/ 24, /*->30220*/
/* 30196*/                OPC_CheckChild5Type, MVT::v8i16,
/* 30198*/                OPC_RecordChild6, // #2 = $Qm
/* 30199*/                OPC_CheckChild6Type, MVT::v8i16,
/* 30201*/                OPC_RecordChild7, // #3 = $mask
/* 30202*/                OPC_CheckChild7Type, MVT::v8i1,
/* 30204*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30206*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30209*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVaxs16), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 23
                          // Dst: (MVE_VMLADAVaxs16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 30220*/              /*Scope*/ 24, /*->30245*/
/* 30221*/                OPC_CheckChild5Type, MVT::v4i32,
/* 30223*/                OPC_RecordChild6, // #2 = $Qm
/* 30224*/                OPC_CheckChild6Type, MVT::v4i32,
/* 30226*/                OPC_RecordChild7, // #3 = $mask
/* 30227*/                OPC_CheckChild7Type, MVT::v4i1,
/* 30229*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30231*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30234*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVaxs32), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 23
                          // Dst: (MVE_VMLADAVaxs32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 30245*/              0, /*End of Scope*/
/* 30246*/            0, /*End of Scope*/
/* 30247*/          0, /*End of Scope*/
/* 30248*/        /*Scope*/ 76|128,2/*332*/, /*->30582*/
/* 30250*/          OPC_CheckChild2Integer, 1, 
/* 30252*/          OPC_Scope, 34|128,1/*162*/, /*->30417*/ // 2 children in Scope
/* 30255*/            OPC_CheckChild3Integer, 0, 
/* 30257*/            OPC_Scope, 77, /*->30336*/ // 2 children in Scope
/* 30259*/              OPC_CheckChild4Integer, 0, 
/* 30261*/              OPC_RecordChild5, // #0 = $Qn
/* 30262*/              OPC_Scope, 23, /*->30287*/ // 3 children in Scope
/* 30264*/                OPC_CheckChild5Type, MVT::v16i8,
/* 30266*/                OPC_RecordChild6, // #1 = $Qm
/* 30267*/                OPC_CheckChild6Type, MVT::v16i8,
/* 30269*/                OPC_RecordChild7, // #2 = $mask
/* 30270*/                OPC_CheckChild7Type, MVT::v16i1,
/* 30272*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30274*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30277*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVs8), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, VCCR:{ *:[v16i1] }:$mask) - Complexity = 28
                          // Dst: (MVE_VMLSDAVs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 30287*/              /*Scope*/ 23, /*->30311*/
/* 30288*/                OPC_CheckChild5Type, MVT::v8i16,
/* 30290*/                OPC_RecordChild6, // #1 = $Qm
/* 30291*/                OPC_CheckChild6Type, MVT::v8i16,
/* 30293*/                OPC_RecordChild7, // #2 = $mask
/* 30294*/                OPC_CheckChild7Type, MVT::v8i1,
/* 30296*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30298*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30301*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVs16), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 28
                          // Dst: (MVE_VMLSDAVs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 30311*/              /*Scope*/ 23, /*->30335*/
/* 30312*/                OPC_CheckChild5Type, MVT::v4i32,
/* 30314*/                OPC_RecordChild6, // #1 = $Qm
/* 30315*/                OPC_CheckChild6Type, MVT::v4i32,
/* 30317*/                OPC_RecordChild7, // #2 = $mask
/* 30318*/                OPC_CheckChild7Type, MVT::v4i1,
/* 30320*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30322*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30325*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVs32), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 28
                          // Dst: (MVE_VMLSDAVs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 30335*/              0, /*End of Scope*/
/* 30336*/            /*Scope*/ 79, /*->30416*/
/* 30337*/              OPC_RecordChild4, // #0 = $RdaSrc
/* 30338*/              OPC_RecordChild5, // #1 = $Qn
/* 30339*/              OPC_Scope, 24, /*->30365*/ // 3 children in Scope
/* 30341*/                OPC_CheckChild5Type, MVT::v16i8,
/* 30343*/                OPC_RecordChild6, // #2 = $Qm
/* 30344*/                OPC_CheckChild6Type, MVT::v16i8,
/* 30346*/                OPC_RecordChild7, // #3 = $mask
/* 30347*/                OPC_CheckChild7Type, MVT::v16i1,
/* 30349*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30351*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30354*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVas8), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, VCCR:{ *:[v16i1] }:$mask) - Complexity = 23
                          // Dst: (MVE_VMLSDAVas8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 30365*/              /*Scope*/ 24, /*->30390*/
/* 30366*/                OPC_CheckChild5Type, MVT::v8i16,
/* 30368*/                OPC_RecordChild6, // #2 = $Qm
/* 30369*/                OPC_CheckChild6Type, MVT::v8i16,
/* 30371*/                OPC_RecordChild7, // #3 = $mask
/* 30372*/                OPC_CheckChild7Type, MVT::v8i1,
/* 30374*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30376*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30379*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVas16), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 23
                          // Dst: (MVE_VMLSDAVas16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 30390*/              /*Scope*/ 24, /*->30415*/
/* 30391*/                OPC_CheckChild5Type, MVT::v4i32,
/* 30393*/                OPC_RecordChild6, // #2 = $Qm
/* 30394*/                OPC_CheckChild6Type, MVT::v4i32,
/* 30396*/                OPC_RecordChild7, // #3 = $mask
/* 30397*/                OPC_CheckChild7Type, MVT::v4i1,
/* 30399*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30401*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30404*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVas32), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 23
                          // Dst: (MVE_VMLSDAVas32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 30415*/              0, /*End of Scope*/
/* 30416*/            0, /*End of Scope*/
/* 30417*/          /*Scope*/ 34|128,1/*162*/, /*->30581*/
/* 30419*/            OPC_CheckChild3Integer, 1, 
/* 30421*/            OPC_Scope, 77, /*->30500*/ // 2 children in Scope
/* 30423*/              OPC_CheckChild4Integer, 0, 
/* 30425*/              OPC_RecordChild5, // #0 = $Qn
/* 30426*/              OPC_Scope, 23, /*->30451*/ // 3 children in Scope
/* 30428*/                OPC_CheckChild5Type, MVT::v16i8,
/* 30430*/                OPC_RecordChild6, // #1 = $Qm
/* 30431*/                OPC_CheckChild6Type, MVT::v16i8,
/* 30433*/                OPC_RecordChild7, // #2 = $mask
/* 30434*/                OPC_CheckChild7Type, MVT::v16i1,
/* 30436*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30438*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30441*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVxs8), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, VCCR:{ *:[v16i1] }:$mask) - Complexity = 28
                          // Dst: (MVE_VMLSDAVxs8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 30451*/              /*Scope*/ 23, /*->30475*/
/* 30452*/                OPC_CheckChild5Type, MVT::v8i16,
/* 30454*/                OPC_RecordChild6, // #1 = $Qm
/* 30455*/                OPC_CheckChild6Type, MVT::v8i16,
/* 30457*/                OPC_RecordChild7, // #2 = $mask
/* 30458*/                OPC_CheckChild7Type, MVT::v8i1,
/* 30460*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30462*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30465*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVxs16), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 28
                          // Dst: (MVE_VMLSDAVxs16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 30475*/              /*Scope*/ 23, /*->30499*/
/* 30476*/                OPC_CheckChild5Type, MVT::v4i32,
/* 30478*/                OPC_RecordChild6, // #1 = $Qm
/* 30479*/                OPC_CheckChild6Type, MVT::v4i32,
/* 30481*/                OPC_RecordChild7, // #2 = $mask
/* 30482*/                OPC_CheckChild7Type, MVT::v4i1,
/* 30484*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30486*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30489*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVxs32), 0,
                              MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 28
                          // Dst: (MVE_VMLSDAVxs32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 30499*/              0, /*End of Scope*/
/* 30500*/            /*Scope*/ 79, /*->30580*/
/* 30501*/              OPC_RecordChild4, // #0 = $RdaSrc
/* 30502*/              OPC_RecordChild5, // #1 = $Qn
/* 30503*/              OPC_Scope, 24, /*->30529*/ // 3 children in Scope
/* 30505*/                OPC_CheckChild5Type, MVT::v16i8,
/* 30507*/                OPC_RecordChild6, // #2 = $Qm
/* 30508*/                OPC_CheckChild6Type, MVT::v16i8,
/* 30510*/                OPC_RecordChild7, // #3 = $mask
/* 30511*/                OPC_CheckChild7Type, MVT::v16i1,
/* 30513*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30515*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30518*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVaxs8), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, VCCR:{ *:[v16i1] }:$mask) - Complexity = 23
                          // Dst: (MVE_VMLSDAVaxs8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 30529*/              /*Scope*/ 24, /*->30554*/
/* 30530*/                OPC_CheckChild5Type, MVT::v8i16,
/* 30532*/                OPC_RecordChild6, // #2 = $Qm
/* 30533*/                OPC_CheckChild6Type, MVT::v8i16,
/* 30535*/                OPC_RecordChild7, // #3 = $mask
/* 30536*/                OPC_CheckChild7Type, MVT::v8i1,
/* 30538*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30540*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30543*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVaxs16), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 23
                          // Dst: (MVE_VMLSDAVaxs16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 30554*/              /*Scope*/ 24, /*->30579*/
/* 30555*/                OPC_CheckChild5Type, MVT::v4i32,
/* 30557*/                OPC_RecordChild6, // #2 = $Qm
/* 30558*/                OPC_CheckChild6Type, MVT::v4i32,
/* 30560*/                OPC_RecordChild7, // #3 = $mask
/* 30561*/                OPC_CheckChild7Type, MVT::v4i1,
/* 30563*/                OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30565*/                OPC_EmitInteger, MVT::i32, 1, 
/* 30568*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLSDAVaxs32), 0,
                              MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 23
                          // Dst: (MVE_VMLSDAVaxs32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 30579*/              0, /*End of Scope*/
/* 30580*/            0, /*End of Scope*/
/* 30581*/          0, /*End of Scope*/
/* 30582*/        0, /*End of Scope*/
/* 30583*/      /*Scope*/ 38|128,1/*166*/, /*->30751*/
/* 30585*/        OPC_CheckChild1Integer, 1, 
/* 30587*/        OPC_CheckChild2Integer, 0, 
/* 30589*/        OPC_CheckChild3Integer, 0, 
/* 30591*/        OPC_Scope, 77, /*->30670*/ // 2 children in Scope
/* 30593*/          OPC_CheckChild4Integer, 0, 
/* 30595*/          OPC_RecordChild5, // #0 = $Qn
/* 30596*/          OPC_Scope, 23, /*->30621*/ // 3 children in Scope
/* 30598*/            OPC_CheckChild5Type, MVT::v16i8,
/* 30600*/            OPC_RecordChild6, // #1 = $Qm
/* 30601*/            OPC_CheckChild6Type, MVT::v16i8,
/* 30603*/            OPC_RecordChild7, // #2 = $mask
/* 30604*/            OPC_CheckChild7Type, MVT::v16i1,
/* 30606*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30608*/            OPC_EmitInteger, MVT::i32, 1, 
/* 30611*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVu8), 0,
                          MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, VCCR:{ *:[v16i1] }:$mask) - Complexity = 28
                      // Dst: (MVE_VMLADAVu8:{ *:[i32] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 30621*/          /*Scope*/ 23, /*->30645*/
/* 30622*/            OPC_CheckChild5Type, MVT::v8i16,
/* 30624*/            OPC_RecordChild6, // #1 = $Qm
/* 30625*/            OPC_CheckChild6Type, MVT::v8i16,
/* 30627*/            OPC_RecordChild7, // #2 = $mask
/* 30628*/            OPC_CheckChild7Type, MVT::v8i1,
/* 30630*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30632*/            OPC_EmitInteger, MVT::i32, 1, 
/* 30635*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVu16), 0,
                          MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 28
                      // Dst: (MVE_VMLADAVu16:{ *:[i32] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 30645*/          /*Scope*/ 23, /*->30669*/
/* 30646*/            OPC_CheckChild5Type, MVT::v4i32,
/* 30648*/            OPC_RecordChild6, // #1 = $Qm
/* 30649*/            OPC_CheckChild6Type, MVT::v4i32,
/* 30651*/            OPC_RecordChild7, // #2 = $mask
/* 30652*/            OPC_CheckChild7Type, MVT::v4i1,
/* 30654*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30656*/            OPC_EmitInteger, MVT::i32, 1, 
/* 30659*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVu32), 0,
                          MVT::i32, 4/*#Ops*/, 0, 1, 3, 2, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 28
                      // Dst: (MVE_VMLADAVu32:{ *:[i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 30669*/          0, /*End of Scope*/
/* 30670*/        /*Scope*/ 79, /*->30750*/
/* 30671*/          OPC_RecordChild4, // #0 = $RdaSrc
/* 30672*/          OPC_RecordChild5, // #1 = $Qn
/* 30673*/          OPC_Scope, 24, /*->30699*/ // 3 children in Scope
/* 30675*/            OPC_CheckChild5Type, MVT::v16i8,
/* 30677*/            OPC_RecordChild6, // #2 = $Qm
/* 30678*/            OPC_CheckChild6Type, MVT::v16i8,
/* 30680*/            OPC_RecordChild7, // #3 = $mask
/* 30681*/            OPC_CheckChild7Type, MVT::v16i1,
/* 30683*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30685*/            OPC_EmitInteger, MVT::i32, 1, 
/* 30688*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVau8), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, VCCR:{ *:[v16i1] }:$mask) - Complexity = 23
                      // Dst: (MVE_VMLADAVau8:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 30699*/          /*Scope*/ 24, /*->30724*/
/* 30700*/            OPC_CheckChild5Type, MVT::v8i16,
/* 30702*/            OPC_RecordChild6, // #2 = $Qm
/* 30703*/            OPC_CheckChild6Type, MVT::v8i16,
/* 30705*/            OPC_RecordChild7, // #3 = $mask
/* 30706*/            OPC_CheckChild7Type, MVT::v8i1,
/* 30708*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30710*/            OPC_EmitInteger, MVT::i32, 1, 
/* 30713*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVau16), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 23
                      // Dst: (MVE_VMLADAVau16:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 30724*/          /*Scope*/ 24, /*->30749*/
/* 30725*/            OPC_CheckChild5Type, MVT::v4i32,
/* 30727*/            OPC_RecordChild6, // #2 = $Qm
/* 30728*/            OPC_CheckChild6Type, MVT::v4i32,
/* 30730*/            OPC_RecordChild7, // #3 = $mask
/* 30731*/            OPC_CheckChild7Type, MVT::v4i1,
/* 30733*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 30735*/            OPC_EmitInteger, MVT::i32, 1, 
/* 30738*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMLADAVau32), 0,
                          MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1608:{ *:[iPTR] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 23
                      // Dst: (MVE_VMLADAVau32:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaSrc, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 30749*/          0, /*End of Scope*/
/* 30750*/        0, /*End of Scope*/
/* 30751*/      0, /*End of Scope*/
/* 30752*/    /*Scope*/ 28|128,1/*156*/, /*->30910*/
/* 30754*/      OPC_CheckChild0Integer, 114|128,13/*1778*/, 
/* 30757*/      OPC_Scope, 52, /*->30811*/ // 2 children in Scope
/* 30759*/        OPC_MoveChild1,
/* 30760*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 30763*/        OPC_CheckChild0Integer, 114|128,13/*1778*/, 
/* 30766*/        OPC_RecordChild1, // #0 = $Rm
/* 30767*/        OPC_CheckChild2Same, 0,
/* 30769*/        OPC_MoveParent,
/* 30770*/        OPC_RecordChild2, // #1 = $Rn
/* 30771*/        OPC_Scope, 18, /*->30791*/ // 2 children in Scope
/* 30773*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 30775*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30778*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30781*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::QDADD), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1778:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[i32] } 1778:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rm), GPRnopc:{ *:[i32] }:$Rn) - Complexity = 16
                    // Dst: (QDADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
/* 30791*/        /*Scope*/ 18, /*->30810*/
/* 30792*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 30794*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30797*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30800*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QDADD), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1778:{ *:[iPTR] }, (intrinsic_wo_chain:{ *:[i32] } 1778:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rm), rGPR:{ *:[i32] }:$Rn) - Complexity = 16
                    // Dst: (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 30810*/        0, /*End of Scope*/
/* 30811*/      /*Scope*/ 97, /*->30909*/
/* 30812*/        OPC_RecordChild1, // #0 = $Rn
/* 30813*/        OPC_Scope, 51, /*->30866*/ // 2 children in Scope
/* 30815*/          OPC_MoveChild2,
/* 30816*/          OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 30819*/          OPC_CheckChild0Integer, 114|128,13/*1778*/, 
/* 30822*/          OPC_RecordChild1, // #1 = $Rm
/* 30823*/          OPC_CheckChild2Same, 1,
/* 30825*/          OPC_MoveParent,
/* 30826*/          OPC_Scope, 18, /*->30846*/ // 2 children in Scope
/* 30828*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 30830*/            OPC_EmitInteger, MVT::i32, 14, 
/* 30833*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30836*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::QDADD), 0,
                          MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1778:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, (intrinsic_wo_chain:{ *:[i32] } 1778:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rm)) - Complexity = 16
                      // Dst: (QDADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
/* 30846*/          /*Scope*/ 18, /*->30865*/
/* 30847*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 30849*/            OPC_EmitInteger, MVT::i32, 14, 
/* 30852*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30855*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QDADD), 0,
                          MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1778:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, (intrinsic_wo_chain:{ *:[i32] } 1778:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rm)) - Complexity = 16
                      // Dst: (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 30865*/          0, /*End of Scope*/
/* 30866*/        /*Scope*/ 41, /*->30908*/
/* 30867*/          OPC_RecordChild2, // #1 = $Rn
/* 30868*/          OPC_Scope, 18, /*->30888*/ // 2 children in Scope
/* 30870*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 30872*/            OPC_EmitInteger, MVT::i32, 14, 
/* 30875*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30878*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::QADD), 0,
                          MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1778:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) - Complexity = 8
                      // Dst: (QADD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
/* 30888*/          /*Scope*/ 18, /*->30907*/
/* 30889*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 30891*/            OPC_EmitInteger, MVT::i32, 14, 
/* 30894*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30897*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QADD), 0,
                          MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[i32] } 1778:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) - Complexity = 8
                      // Dst: (t2QADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 30907*/          0, /*End of Scope*/
/* 30908*/        0, /*End of Scope*/
/* 30909*/      0, /*End of Scope*/
/* 30910*/    /*Scope*/ 100, /*->31011*/
/* 30911*/      OPC_CheckChild0Integer, 119|128,13/*1783*/, 
/* 30914*/      OPC_RecordChild1, // #0 = $Rm
/* 30915*/      OPC_Scope, 51, /*->30968*/ // 2 children in Scope
/* 30917*/        OPC_MoveChild2,
/* 30918*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 30921*/        OPC_CheckChild0Integer, 114|128,13/*1778*/, 
/* 30924*/        OPC_RecordChild1, // #1 = $Rn
/* 30925*/        OPC_CheckChild2Same, 1,
/* 30927*/        OPC_MoveParent,
/* 30928*/        OPC_Scope, 18, /*->30948*/ // 2 children in Scope
/* 30930*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 30932*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30935*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30938*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::QDSUB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1783:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, (intrinsic_wo_chain:{ *:[i32] } 1778:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rn)) - Complexity = 16
                    // Dst: (QDSUB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
/* 30948*/        /*Scope*/ 18, /*->30967*/
/* 30949*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 30951*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30954*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30957*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QDSUB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1783:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, (intrinsic_wo_chain:{ *:[i32] } 1778:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) - Complexity = 16
                    // Dst: (t2QDSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 30967*/        0, /*End of Scope*/
/* 30968*/      /*Scope*/ 41, /*->31010*/
/* 30969*/        OPC_RecordChild2, // #1 = $Rn
/* 30970*/        OPC_Scope, 18, /*->30990*/ // 2 children in Scope
/* 30972*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 30974*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30977*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30980*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::QSUB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1783:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn) - Complexity = 8
                    // Dst: (QSUB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Rn)
/* 30990*/        /*Scope*/ 18, /*->31009*/
/* 30991*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 30993*/          OPC_EmitInteger, MVT::i32, 14, 
/* 30996*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 30999*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QSUB), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1783:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) - Complexity = 8
                    // Dst: (t2QSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 31009*/        0, /*End of Scope*/
/* 31010*/      0, /*End of Scope*/
/* 31011*/    /*Scope*/ 120, /*->31132*/
/* 31012*/      OPC_CheckChild0Integer, 44|128,14/*1836*/, 
/* 31015*/      OPC_Scope, 66, /*->31083*/ // 2 children in Scope
/* 31017*/        OPC_MoveChild1,
/* 31018*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 31021*/        OPC_RecordChild0, // #0 = $Src
/* 31022*/        OPC_RecordChild1, // #1 = $rot
/* 31023*/        OPC_MoveChild1,
/* 31024*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31027*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 31029*/        OPC_CheckType, MVT::i32,
/* 31031*/        OPC_MoveParent,
/* 31032*/        OPC_MoveParent,
/* 31033*/        OPC_Scope, 23, /*->31058*/ // 2 children in Scope
/* 31035*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 31037*/          OPC_EmitConvertToTarget, 1,
/* 31039*/          OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 31042*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31045*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31048*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTB16), 0,
                        MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1836:{ *:[iPTR] }, (rotr:{ *:[i32] } GPR:{ *:[i32] }:$Src, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot)) - Complexity = 15
                    // Dst: (SXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/* 31058*/        /*Scope*/ 23, /*->31082*/
/* 31059*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 31061*/          OPC_EmitConvertToTarget, 1,
/* 31063*/          OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 31066*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31069*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31072*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTB16), 0,
                        MVT::i32, 4/*#Ops*/, 0, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1836:{ *:[iPTR] }, (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot)) - Complexity = 15
                    // Dst: (t2SXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/* 31082*/        0, /*End of Scope*/
/* 31083*/      /*Scope*/ 47, /*->31131*/
/* 31084*/        OPC_RecordChild1, // #0 = $Src
/* 31085*/        OPC_Scope, 21, /*->31108*/ // 2 children in Scope
/* 31087*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 31089*/          OPC_EmitInteger, MVT::i32, 0, 
/* 31092*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31095*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31098*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTB16), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1836:{ *:[iPTR] }, GPR:{ *:[i32] }:$Src) - Complexity = 8
                    // Dst: (SXTB16:{ *:[i32] } GPR:{ *:[i32] }:$Src, 0:{ *:[i32] })
/* 31108*/        /*Scope*/ 21, /*->31130*/
/* 31109*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 31111*/          OPC_EmitInteger, MVT::i32, 0, 
/* 31114*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31117*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31120*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTB16), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1836:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) - Complexity = 8
                    // Dst: (t2SXTB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, 0:{ *:[i32] })
/* 31130*/        0, /*End of Scope*/
/* 31131*/      0, /*End of Scope*/
/* 31132*/    /*Scope*/ 125, /*->31258*/
/* 31133*/      OPC_CheckChild0Integer, 43|128,14/*1835*/, 
/* 31136*/      OPC_RecordChild1, // #0 = $LHS
/* 31137*/      OPC_Scope, 68, /*->31207*/ // 2 children in Scope
/* 31139*/        OPC_MoveChild2,
/* 31140*/        OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 31143*/        OPC_RecordChild0, // #1 = $RHS
/* 31144*/        OPC_RecordChild1, // #2 = $rot
/* 31145*/        OPC_MoveChild1,
/* 31146*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31149*/        OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 31151*/        OPC_CheckType, MVT::i32,
/* 31153*/        OPC_MoveParent,
/* 31154*/        OPC_MoveParent,
/* 31155*/        OPC_Scope, 24, /*->31181*/ // 2 children in Scope
/* 31157*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 31159*/          OPC_EmitConvertToTarget, 2,
/* 31161*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/* 31164*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31167*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31170*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAB16), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1835:{ *:[iPTR] }, GPR:{ *:[i32] }:$LHS, (rotr:{ *:[i32] } GPR:{ *:[i32] }:$RHS, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot)) - Complexity = 15
                    // Dst: (SXTAB16:{ *:[i32] } GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/* 31181*/        /*Scope*/ 24, /*->31206*/
/* 31182*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 31184*/          OPC_EmitConvertToTarget, 2,
/* 31186*/          OPC_EmitNodeXForm, 2, 3, // rot_imm_XFORM
/* 31189*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31192*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31195*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAB16), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1835:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, (rotr:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (imm:{ *:[i32] })<<P:Predicate_rot_imm>><<X:rot_imm_XFORM>>:$rot)) - Complexity = 15
                    // Dst: (t2SXTAB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, (rot_imm_XFORM:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_rot_imm>>:$rot))
/* 31206*/        0, /*End of Scope*/
/* 31207*/      /*Scope*/ 49, /*->31257*/
/* 31208*/        OPC_RecordChild2, // #1 = $RHS
/* 31209*/        OPC_Scope, 22, /*->31233*/ // 2 children in Scope
/* 31211*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 31213*/          OPC_EmitInteger, MVT::i32, 0, 
/* 31216*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31219*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31222*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::SXTAB16), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1835:{ *:[iPTR] }, GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS) - Complexity = 8
                    // Dst: (SXTAB16:{ *:[i32] } GPR:{ *:[i32] }:$LHS, GPR:{ *:[i32] }:$RHS, 0:{ *:[i32] })
/* 31233*/        /*Scope*/ 22, /*->31256*/
/* 31234*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 31236*/          OPC_EmitInteger, MVT::i32, 0, 
/* 31239*/          OPC_EmitInteger, MVT::i32, 14, 
/* 31242*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31245*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SXTAB16), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1835:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                    // Dst: (t2SXTAB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, 0:{ *:[i32] })
/* 31256*/        0, /*End of Scope*/
/* 31257*/      0, /*End of Scope*/
/* 31258*/    /*Scope*/ 41|128,1/*169*/, /*->31429*/
/* 31260*/      OPC_CheckChild0Integer, 44|128,12/*1580*/, 
/* 31263*/      OPC_Scope, 81, /*->31346*/ // 2 children in Scope
/* 31265*/        OPC_CheckChild1Integer, 0, 
/* 31267*/        OPC_RecordChild2, // #0 = $Rda_src
/* 31268*/        OPC_RecordChild3, // #1 = $Qn
/* 31269*/        OPC_Scope, 24, /*->31295*/ // 3 children in Scope
/* 31271*/          OPC_CheckChild3Type, MVT::v16i8,
/* 31273*/          OPC_RecordChild4, // #2 = $Qm
/* 31274*/          OPC_CheckChild4Type, MVT::v16i8,
/* 31276*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 31278*/          OPC_EmitInteger, MVT::i32, 0, 
/* 31281*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31284*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABAVs8), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1580:{ *:[iPTR] }, 0:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) - Complexity = 13
                    // Dst: (MVE_VABAVs8:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
/* 31295*/        /*Scope*/ 24, /*->31320*/
/* 31296*/          OPC_CheckChild3Type, MVT::v8i16,
/* 31298*/          OPC_RecordChild4, // #2 = $Qm
/* 31299*/          OPC_CheckChild4Type, MVT::v8i16,
/* 31301*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 31303*/          OPC_EmitInteger, MVT::i32, 0, 
/* 31306*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31309*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABAVs16), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1580:{ *:[iPTR] }, 0:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) - Complexity = 13
                    // Dst: (MVE_VABAVs16:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
/* 31320*/        /*Scope*/ 24, /*->31345*/
/* 31321*/          OPC_CheckChild3Type, MVT::v4i32,
/* 31323*/          OPC_RecordChild4, // #2 = $Qm
/* 31324*/          OPC_CheckChild4Type, MVT::v4i32,
/* 31326*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 31328*/          OPC_EmitInteger, MVT::i32, 0, 
/* 31331*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31334*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABAVs32), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1580:{ *:[iPTR] }, 0:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) - Complexity = 13
                    // Dst: (MVE_VABAVs32:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
/* 31345*/        0, /*End of Scope*/
/* 31346*/      /*Scope*/ 81, /*->31428*/
/* 31347*/        OPC_CheckChild1Integer, 1, 
/* 31349*/        OPC_RecordChild2, // #0 = $Rda_src
/* 31350*/        OPC_RecordChild3, // #1 = $Qn
/* 31351*/        OPC_Scope, 24, /*->31377*/ // 3 children in Scope
/* 31353*/          OPC_CheckChild3Type, MVT::v16i8,
/* 31355*/          OPC_RecordChild4, // #2 = $Qm
/* 31356*/          OPC_CheckChild4Type, MVT::v16i8,
/* 31358*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 31360*/          OPC_EmitInteger, MVT::i32, 0, 
/* 31363*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31366*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABAVu8), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1580:{ *:[iPTR] }, 1:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) - Complexity = 13
                    // Dst: (MVE_VABAVu8:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm)
/* 31377*/        /*Scope*/ 24, /*->31402*/
/* 31378*/          OPC_CheckChild3Type, MVT::v8i16,
/* 31380*/          OPC_RecordChild4, // #2 = $Qm
/* 31381*/          OPC_CheckChild4Type, MVT::v8i16,
/* 31383*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 31385*/          OPC_EmitInteger, MVT::i32, 0, 
/* 31388*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31391*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABAVu16), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1580:{ *:[iPTR] }, 1:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) - Complexity = 13
                    // Dst: (MVE_VABAVu16:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm)
/* 31402*/        /*Scope*/ 24, /*->31427*/
/* 31403*/          OPC_CheckChild3Type, MVT::v4i32,
/* 31405*/          OPC_RecordChild4, // #2 = $Qm
/* 31406*/          OPC_CheckChild4Type, MVT::v4i32,
/* 31408*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 31410*/          OPC_EmitInteger, MVT::i32, 0, 
/* 31413*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31416*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABAVu32), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1580:{ *:[iPTR] }, 1:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) - Complexity = 13
                    // Dst: (MVE_VABAVu32:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm)
/* 31427*/        0, /*End of Scope*/
/* 31428*/      0, /*End of Scope*/
/* 31429*/    /*Scope*/ 41|128,1/*169*/, /*->31600*/
/* 31431*/      OPC_CheckChild0Integer, 45|128,12/*1581*/, 
/* 31434*/      OPC_Scope, 81, /*->31517*/ // 2 children in Scope
/* 31436*/        OPC_CheckChild1Integer, 0, 
/* 31438*/        OPC_RecordChild2, // #0 = $Rda_src
/* 31439*/        OPC_RecordChild3, // #1 = $Qn
/* 31440*/        OPC_Scope, 24, /*->31466*/ // 3 children in Scope
/* 31442*/          OPC_CheckChild3Type, MVT::v16i8,
/* 31444*/          OPC_RecordChild4, // #2 = $Qm
/* 31445*/          OPC_CheckChild4Type, MVT::v16i8,
/* 31447*/          OPC_RecordChild5, // #3 = $mask
/* 31448*/          OPC_CheckChild5Type, MVT::v16i1,
/* 31450*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 31452*/          OPC_EmitInteger, MVT::i32, 1, 
/* 31455*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABAVs8), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1581:{ *:[iPTR] }, 0:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, VCCR:{ *:[v16i1] }:$mask) - Complexity = 13
                    // Dst: (MVE_VABAVs8:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 31466*/        /*Scope*/ 24, /*->31491*/
/* 31467*/          OPC_CheckChild3Type, MVT::v8i16,
/* 31469*/          OPC_RecordChild4, // #2 = $Qm
/* 31470*/          OPC_CheckChild4Type, MVT::v8i16,
/* 31472*/          OPC_RecordChild5, // #3 = $mask
/* 31473*/          OPC_CheckChild5Type, MVT::v8i1,
/* 31475*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 31477*/          OPC_EmitInteger, MVT::i32, 1, 
/* 31480*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABAVs16), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1581:{ *:[iPTR] }, 0:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 13
                    // Dst: (MVE_VABAVs16:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 31491*/        /*Scope*/ 24, /*->31516*/
/* 31492*/          OPC_CheckChild3Type, MVT::v4i32,
/* 31494*/          OPC_RecordChild4, // #2 = $Qm
/* 31495*/          OPC_CheckChild4Type, MVT::v4i32,
/* 31497*/          OPC_RecordChild5, // #3 = $mask
/* 31498*/          OPC_CheckChild5Type, MVT::v4i1,
/* 31500*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 31502*/          OPC_EmitInteger, MVT::i32, 1, 
/* 31505*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABAVs32), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1581:{ *:[iPTR] }, 0:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 13
                    // Dst: (MVE_VABAVs32:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 31516*/        0, /*End of Scope*/
/* 31517*/      /*Scope*/ 81, /*->31599*/
/* 31518*/        OPC_CheckChild1Integer, 1, 
/* 31520*/        OPC_RecordChild2, // #0 = $Rda_src
/* 31521*/        OPC_RecordChild3, // #1 = $Qn
/* 31522*/        OPC_Scope, 24, /*->31548*/ // 3 children in Scope
/* 31524*/          OPC_CheckChild3Type, MVT::v16i8,
/* 31526*/          OPC_RecordChild4, // #2 = $Qm
/* 31527*/          OPC_CheckChild4Type, MVT::v16i8,
/* 31529*/          OPC_RecordChild5, // #3 = $mask
/* 31530*/          OPC_CheckChild5Type, MVT::v16i1,
/* 31532*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 31534*/          OPC_EmitInteger, MVT::i32, 1, 
/* 31537*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABAVu8), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1581:{ *:[iPTR] }, 1:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, VCCR:{ *:[v16i1] }:$mask) - Complexity = 13
                    // Dst: (MVE_VABAVu8:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 31548*/        /*Scope*/ 24, /*->31573*/
/* 31549*/          OPC_CheckChild3Type, MVT::v8i16,
/* 31551*/          OPC_RecordChild4, // #2 = $Qm
/* 31552*/          OPC_CheckChild4Type, MVT::v8i16,
/* 31554*/          OPC_RecordChild5, // #3 = $mask
/* 31555*/          OPC_CheckChild5Type, MVT::v8i1,
/* 31557*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 31559*/          OPC_EmitInteger, MVT::i32, 1, 
/* 31562*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABAVu16), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1581:{ *:[iPTR] }, 1:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 13
                    // Dst: (MVE_VABAVu16:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 31573*/        /*Scope*/ 24, /*->31598*/
/* 31574*/          OPC_CheckChild3Type, MVT::v4i32,
/* 31576*/          OPC_RecordChild4, // #2 = $Qm
/* 31577*/          OPC_CheckChild4Type, MVT::v4i32,
/* 31579*/          OPC_RecordChild5, // #3 = $mask
/* 31580*/          OPC_CheckChild5Type, MVT::v4i1,
/* 31582*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 31584*/          OPC_EmitInteger, MVT::i32, 1, 
/* 31587*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABAVu32), 0,
                        MVT::i32, 5/*#Ops*/, 0, 1, 2, 4, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[i32] } 1581:{ *:[iPTR] }, 1:{ *:[i32] }, rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 13
                    // Dst: (MVE_VABAVu32:{ *:[i32] } rGPR:{ *:[i32] }:$Rda_src, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 31598*/        0, /*End of Scope*/
/* 31599*/      0, /*End of Scope*/
/* 31600*/    /*Scope*/ 70, /*->31671*/
/* 31601*/      OPC_CheckChild0Integer, 30|128,14/*1822*/, 
/* 31604*/      OPC_RecordChild1, // #0 = $a
/* 31605*/      OPC_RecordChild2, // #1 = $pos
/* 31606*/      OPC_MoveChild2,
/* 31607*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31610*/      OPC_CheckPredicate, 30, // Predicate_imm1_32
/* 31612*/      OPC_MoveParent,
/* 31613*/      OPC_Scope, 27, /*->31642*/ // 2 children in Scope
/* 31615*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 31617*/        OPC_EmitConvertToTarget, 1,
/* 31619*/        OPC_EmitNodeXForm, 11, 2, // imm1_32_XFORM
/* 31622*/        OPC_EmitInteger, MVT::i32, 0, 
/* 31625*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31628*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31631*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SSAT), 0,
                      MVT::i32, 5/*#Ops*/, 3, 0, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1822:{ *:[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] })
/* 31642*/      /*Scope*/ 27, /*->31670*/
/* 31643*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 31645*/        OPC_EmitConvertToTarget, 1,
/* 31647*/        OPC_EmitNodeXForm, 11, 2, // imm1_32_XFORM
/* 31650*/        OPC_EmitInteger, MVT::i32, 0, 
/* 31653*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31656*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31659*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SSAT), 0,
                      MVT::i32, 5/*#Ops*/, 3, 0, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1822:{ *:[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] })
/* 31670*/      0, /*End of Scope*/
/* 31671*/    /*Scope*/ 64, /*->31736*/
/* 31672*/      OPC_CheckChild0Integer, 63|128,14/*1855*/, 
/* 31675*/      OPC_RecordChild1, // #0 = $a
/* 31676*/      OPC_RecordChild2, // #1 = $pos
/* 31677*/      OPC_MoveChild2,
/* 31678*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31681*/      OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 31683*/      OPC_MoveParent,
/* 31684*/      OPC_Scope, 24, /*->31710*/ // 2 children in Scope
/* 31686*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 31688*/        OPC_EmitConvertToTarget, 1,
/* 31690*/        OPC_EmitInteger, MVT::i32, 0, 
/* 31693*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31696*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31699*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::USAT), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1855:{ *:[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] })
/* 31710*/      /*Scope*/ 24, /*->31735*/
/* 31711*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 31713*/        OPC_EmitConvertToTarget, 1,
/* 31715*/        OPC_EmitInteger, MVT::i32, 0, 
/* 31718*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31721*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31724*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USAT), 0,
                      MVT::i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1855:{ *:[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] })
/* 31735*/      0, /*End of Scope*/
/* 31736*/    /*Scope*/ 62, /*->31799*/
/* 31737*/      OPC_CheckChild0Integer, 31|128,14/*1823*/, 
/* 31740*/      OPC_RecordChild1, // #0 = $a
/* 31741*/      OPC_RecordChild2, // #1 = $pos
/* 31742*/      OPC_MoveChild2,
/* 31743*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31746*/      OPC_CheckPredicate, 32, // Predicate_imm1_16
/* 31748*/      OPC_MoveParent,
/* 31749*/      OPC_Scope, 23, /*->31774*/ // 2 children in Scope
/* 31751*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 31753*/        OPC_EmitConvertToTarget, 1,
/* 31755*/        OPC_EmitNodeXForm, 12, 2, // imm1_16_XFORM
/* 31758*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31761*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31764*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SSAT16), 0,
                      MVT::i32, 4/*#Ops*/, 3, 0, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1823:{ *:[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)
/* 31774*/      /*Scope*/ 23, /*->31798*/
/* 31775*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 31777*/        OPC_EmitConvertToTarget, 1,
/* 31779*/        OPC_EmitNodeXForm, 12, 2, // imm1_16_XFORM
/* 31782*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31785*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31788*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SSAT16), 0,
                      MVT::i32, 4/*#Ops*/, 3, 0, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1823:{ *:[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)
/* 31798*/      0, /*End of Scope*/
/* 31799*/    /*Scope*/ 56, /*->31856*/
/* 31800*/      OPC_CheckChild0Integer, 64|128,14/*1856*/, 
/* 31803*/      OPC_RecordChild1, // #0 = $a
/* 31804*/      OPC_RecordChild2, // #1 = $pos
/* 31805*/      OPC_MoveChild2,
/* 31806*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31809*/      OPC_CheckPredicate, 33, // Predicate_imm0_15
/* 31811*/      OPC_MoveParent,
/* 31812*/      OPC_Scope, 20, /*->31834*/ // 2 children in Scope
/* 31814*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 31816*/        OPC_EmitConvertToTarget, 1,
/* 31818*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31821*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31824*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::USAT16), 0,
                      MVT::i32, 4/*#Ops*/, 2, 0, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1856:{ *:[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)
/* 31834*/      /*Scope*/ 20, /*->31855*/
/* 31835*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 31837*/        OPC_EmitConvertToTarget, 1,
/* 31839*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31842*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31845*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USAT16), 0,
                      MVT::i32, 4/*#Ops*/, 2, 0, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1856:{ *:[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)
/* 31855*/      0, /*End of Scope*/
/* 31856*/    /*Scope*/ 30, /*->31887*/
/* 31857*/      OPC_CheckChild0Integer, 33|128,12/*1569*/, 
/* 31860*/      OPC_RecordChild1, // #0 = $RdaSrc
/* 31861*/      OPC_RecordChild2, // #1 = $imm
/* 31862*/      OPC_MoveChild2,
/* 31863*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31866*/      OPC_MoveParent,
/* 31867*/      OPC_CheckPatternPredicate, 18, // (Subtarget->hasMVEIntegerOps()) && (Subtarget->hasV8_1MMainlineOps())
/* 31869*/      OPC_EmitConvertToTarget, 1,
/* 31871*/      OPC_EmitInteger, MVT::i32, 14, 
/* 31874*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31877*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_SQSHL), 0,
                    MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 1569:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm) - Complexity = 11
                // Dst: (MVE_SQSHL:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm)
/* 31887*/    /*Scope*/ 30, /*->31918*/
/* 31888*/      OPC_CheckChild0Integer, 35|128,12/*1571*/, 
/* 31891*/      OPC_RecordChild1, // #0 = $RdaSrc
/* 31892*/      OPC_RecordChild2, // #1 = $imm
/* 31893*/      OPC_MoveChild2,
/* 31894*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31897*/      OPC_MoveParent,
/* 31898*/      OPC_CheckPatternPredicate, 18, // (Subtarget->hasMVEIntegerOps()) && (Subtarget->hasV8_1MMainlineOps())
/* 31900*/      OPC_EmitConvertToTarget, 1,
/* 31902*/      OPC_EmitInteger, MVT::i32, 14, 
/* 31905*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31908*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_SRSHR), 0,
                    MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 1571:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm) - Complexity = 11
                // Dst: (MVE_SRSHR:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm)
/* 31918*/    /*Scope*/ 30, /*->31949*/
/* 31919*/      OPC_CheckChild0Integer, 40|128,12/*1576*/, 
/* 31922*/      OPC_RecordChild1, // #0 = $RdaSrc
/* 31923*/      OPC_RecordChild2, // #1 = $imm
/* 31924*/      OPC_MoveChild2,
/* 31925*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31928*/      OPC_MoveParent,
/* 31929*/      OPC_CheckPatternPredicate, 18, // (Subtarget->hasMVEIntegerOps()) && (Subtarget->hasV8_1MMainlineOps())
/* 31931*/      OPC_EmitConvertToTarget, 1,
/* 31933*/      OPC_EmitInteger, MVT::i32, 14, 
/* 31936*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31939*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_UQSHL), 0,
                    MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 1576:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm) - Complexity = 11
                // Dst: (MVE_UQSHL:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm)
/* 31949*/    /*Scope*/ 30, /*->31980*/
/* 31950*/      OPC_CheckChild0Integer, 42|128,12/*1578*/, 
/* 31953*/      OPC_RecordChild1, // #0 = $RdaSrc
/* 31954*/      OPC_RecordChild2, // #1 = $imm
/* 31955*/      OPC_MoveChild2,
/* 31956*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 31959*/      OPC_MoveParent,
/* 31960*/      OPC_CheckPatternPredicate, 18, // (Subtarget->hasMVEIntegerOps()) && (Subtarget->hasV8_1MMainlineOps())
/* 31962*/      OPC_EmitConvertToTarget, 1,
/* 31964*/      OPC_EmitInteger, MVT::i32, 14, 
/* 31967*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31970*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_URSHR), 0,
                    MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 1578:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm) - Complexity = 11
                // Dst: (MVE_URSHR:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, (imm:{ *:[i32] }):$imm)
/* 31980*/    /*Scope*/ 45, /*->32026*/
/* 31981*/      OPC_CheckChild0Integer, 116|128,13/*1780*/, 
/* 31984*/      OPC_RecordChild1, // #0 = $Rn
/* 31985*/      OPC_RecordChild2, // #1 = $Rm
/* 31986*/      OPC_Scope, 18, /*->32006*/ // 2 children in Scope
/* 31988*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 31990*/        OPC_EmitInteger, MVT::i32, 14, 
/* 31993*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 31996*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1780:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (QADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32006*/      /*Scope*/ 18, /*->32025*/
/* 32007*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32009*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32012*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32015*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1780:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2QADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32025*/      0, /*End of Scope*/
/* 32026*/    /*Scope*/ 45, /*->32072*/
/* 32027*/      OPC_CheckChild0Integer, 115|128,13/*1779*/, 
/* 32030*/      OPC_RecordChild1, // #0 = $Rn
/* 32031*/      OPC_RecordChild2, // #1 = $Rm
/* 32032*/      OPC_Scope, 18, /*->32052*/ // 2 children in Scope
/* 32034*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32036*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32039*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32042*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1779:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (QADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32052*/      /*Scope*/ 18, /*->32071*/
/* 32053*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32055*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32058*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32061*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1779:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2QADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32071*/      0, /*End of Scope*/
/* 32072*/    /*Scope*/ 45, /*->32118*/
/* 32073*/      OPC_CheckChild0Integer, 120|128,13/*1784*/, 
/* 32076*/      OPC_RecordChild1, // #0 = $Rn
/* 32077*/      OPC_RecordChild2, // #1 = $Rm
/* 32078*/      OPC_Scope, 18, /*->32098*/ // 2 children in Scope
/* 32080*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32082*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32085*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32088*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1784:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (QSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32098*/      /*Scope*/ 18, /*->32117*/
/* 32099*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32101*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32104*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32107*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1784:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2QSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32117*/      0, /*End of Scope*/
/* 32118*/    /*Scope*/ 45, /*->32164*/
/* 32119*/      OPC_CheckChild0Integer, 121|128,13/*1785*/, 
/* 32122*/      OPC_RecordChild1, // #0 = $Rn
/* 32123*/      OPC_RecordChild2, // #1 = $Rm
/* 32124*/      OPC_Scope, 18, /*->32144*/ // 2 children in Scope
/* 32126*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32128*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32131*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32134*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1785:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (QSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32144*/      /*Scope*/ 18, /*->32163*/
/* 32145*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32147*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32150*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32153*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1785:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2QSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32163*/      0, /*End of Scope*/
/* 32164*/    /*Scope*/ 45, /*->32210*/
/* 32165*/      OPC_CheckChild0Integer, 55|128,14/*1847*/, 
/* 32168*/      OPC_RecordChild1, // #0 = $Rn
/* 32169*/      OPC_RecordChild2, // #1 = $Rm
/* 32170*/      OPC_Scope, 18, /*->32190*/ // 2 children in Scope
/* 32172*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32174*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32177*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32180*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UQADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1847:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32190*/      /*Scope*/ 18, /*->32209*/
/* 32191*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32193*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32196*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32199*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UQADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1847:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UQADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32209*/      0, /*End of Scope*/
/* 32210*/    /*Scope*/ 45, /*->32256*/
/* 32211*/      OPC_CheckChild0Integer, 56|128,14/*1848*/, 
/* 32214*/      OPC_RecordChild1, // #0 = $Rn
/* 32215*/      OPC_RecordChild2, // #1 = $Rm
/* 32216*/      OPC_Scope, 18, /*->32236*/ // 2 children in Scope
/* 32218*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32220*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32223*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32226*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UQADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1848:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32236*/      /*Scope*/ 18, /*->32255*/
/* 32237*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32239*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32242*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32245*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UQADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1848:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UQADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32255*/      0, /*End of Scope*/
/* 32256*/    /*Scope*/ 45, /*->32302*/
/* 32257*/      OPC_CheckChild0Integer, 59|128,14/*1851*/, 
/* 32260*/      OPC_RecordChild1, // #0 = $Rn
/* 32261*/      OPC_RecordChild2, // #1 = $Rm
/* 32262*/      OPC_Scope, 18, /*->32282*/ // 2 children in Scope
/* 32264*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32266*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32269*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32272*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UQSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1851:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32282*/      /*Scope*/ 18, /*->32301*/
/* 32283*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32285*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32288*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32291*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UQSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1851:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UQSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32301*/      0, /*End of Scope*/
/* 32302*/    /*Scope*/ 45, /*->32348*/
/* 32303*/      OPC_CheckChild0Integer, 60|128,14/*1852*/, 
/* 32306*/      OPC_RecordChild1, // #0 = $Rn
/* 32307*/      OPC_RecordChild2, // #1 = $Rm
/* 32308*/      OPC_Scope, 18, /*->32328*/ // 2 children in Scope
/* 32310*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32312*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32315*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32318*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UQSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1852:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32328*/      /*Scope*/ 18, /*->32347*/
/* 32329*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32331*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32334*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32337*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UQSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1852:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UQSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32347*/      0, /*End of Scope*/
/* 32348*/    /*Scope*/ 45, /*->32394*/
/* 32349*/      OPC_CheckChild0Integer, 117|128,13/*1781*/, 
/* 32352*/      OPC_RecordChild1, // #0 = $Rn
/* 32353*/      OPC_RecordChild2, // #1 = $Rm
/* 32354*/      OPC_Scope, 18, /*->32374*/ // 2 children in Scope
/* 32356*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32358*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32361*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32364*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1781:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (QASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32374*/      /*Scope*/ 18, /*->32393*/
/* 32375*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32377*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32380*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32383*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1781:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2QASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32393*/      0, /*End of Scope*/
/* 32394*/    /*Scope*/ 45, /*->32440*/
/* 32395*/      OPC_CheckChild0Integer, 118|128,13/*1782*/, 
/* 32398*/      OPC_RecordChild1, // #0 = $Rn
/* 32399*/      OPC_RecordChild2, // #1 = $Rm
/* 32400*/      OPC_Scope, 18, /*->32420*/ // 2 children in Scope
/* 32402*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32404*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32407*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32410*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1782:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (QSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32420*/      /*Scope*/ 18, /*->32439*/
/* 32421*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32423*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32426*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32429*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1782:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2QSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32439*/      0, /*End of Scope*/
/* 32440*/    /*Scope*/ 45, /*->32486*/
/* 32441*/      OPC_CheckChild0Integer, 57|128,14/*1849*/, 
/* 32444*/      OPC_RecordChild1, // #0 = $Rn
/* 32445*/      OPC_RecordChild2, // #1 = $Rm
/* 32446*/      OPC_Scope, 18, /*->32466*/ // 2 children in Scope
/* 32448*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32450*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32453*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32456*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UQASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1849:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32466*/      /*Scope*/ 18, /*->32485*/
/* 32467*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32469*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32472*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32475*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UQASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1849:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UQASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32485*/      0, /*End of Scope*/
/* 32486*/    /*Scope*/ 45, /*->32532*/
/* 32487*/      OPC_CheckChild0Integer, 58|128,14/*1850*/, 
/* 32490*/      OPC_RecordChild1, // #0 = $Rn
/* 32491*/      OPC_RecordChild2, // #1 = $Rm
/* 32492*/      OPC_Scope, 18, /*->32512*/ // 2 children in Scope
/* 32494*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32496*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32499*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32502*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UQSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1850:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UQSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32512*/      /*Scope*/ 18, /*->32531*/
/* 32513*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32515*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32518*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32521*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UQSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1850:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UQSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32531*/      0, /*End of Scope*/
/* 32532*/    /*Scope*/ 45, /*->32578*/
/* 32533*/      OPC_CheckChild0Integer, 1|128,14/*1793*/, 
/* 32536*/      OPC_RecordChild1, // #0 = $Rn
/* 32537*/      OPC_RecordChild2, // #1 = $Rm
/* 32538*/      OPC_Scope, 18, /*->32558*/ // 2 children in Scope
/* 32540*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32542*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32545*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32548*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SHASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1793:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SHASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32558*/      /*Scope*/ 18, /*->32577*/
/* 32559*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32561*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32564*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32567*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SHASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1793:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SHASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32577*/      0, /*End of Scope*/
/* 32578*/    /*Scope*/ 45, /*->32624*/
/* 32579*/      OPC_CheckChild0Integer, 127|128,13/*1791*/, 
/* 32582*/      OPC_RecordChild1, // #0 = $Rn
/* 32583*/      OPC_RecordChild2, // #1 = $Rm
/* 32584*/      OPC_Scope, 18, /*->32604*/ // 2 children in Scope
/* 32586*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32588*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32591*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32594*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SHADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1791:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SHADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32604*/      /*Scope*/ 18, /*->32623*/
/* 32605*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32607*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32610*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32613*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SHADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1791:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SHADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32623*/      0, /*End of Scope*/
/* 32624*/    /*Scope*/ 45, /*->32670*/
/* 32625*/      OPC_CheckChild0Integer, 0|128,14/*1792*/, 
/* 32628*/      OPC_RecordChild1, // #0 = $Rn
/* 32629*/      OPC_RecordChild2, // #1 = $Rm
/* 32630*/      OPC_Scope, 18, /*->32650*/ // 2 children in Scope
/* 32632*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32634*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32637*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32640*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SHADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1792:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SHADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32650*/      /*Scope*/ 18, /*->32669*/
/* 32651*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32653*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32656*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32659*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SHADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1792:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SHADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32669*/      0, /*End of Scope*/
/* 32670*/    /*Scope*/ 45, /*->32716*/
/* 32671*/      OPC_CheckChild0Integer, 2|128,14/*1794*/, 
/* 32674*/      OPC_RecordChild1, // #0 = $Rn
/* 32675*/      OPC_RecordChild2, // #1 = $Rm
/* 32676*/      OPC_Scope, 18, /*->32696*/ // 2 children in Scope
/* 32678*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32680*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32683*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32686*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SHSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1794:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SHSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32696*/      /*Scope*/ 18, /*->32715*/
/* 32697*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32699*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32702*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32705*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SHSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1794:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SHSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32715*/      0, /*End of Scope*/
/* 32716*/    /*Scope*/ 45, /*->32762*/
/* 32717*/      OPC_CheckChild0Integer, 3|128,14/*1795*/, 
/* 32720*/      OPC_RecordChild1, // #0 = $Rn
/* 32721*/      OPC_RecordChild2, // #1 = $Rm
/* 32722*/      OPC_Scope, 18, /*->32742*/ // 2 children in Scope
/* 32724*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32726*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32729*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32732*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SHSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1795:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SHSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32742*/      /*Scope*/ 18, /*->32761*/
/* 32743*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32745*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32748*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32751*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SHSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1795:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SHSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32761*/      0, /*End of Scope*/
/* 32762*/    /*Scope*/ 45, /*->32808*/
/* 32763*/      OPC_CheckChild0Integer, 4|128,14/*1796*/, 
/* 32766*/      OPC_RecordChild1, // #0 = $Rn
/* 32767*/      OPC_RecordChild2, // #1 = $Rm
/* 32768*/      OPC_Scope, 18, /*->32788*/ // 2 children in Scope
/* 32770*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32772*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32775*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32778*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SHSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1796:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SHSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32788*/      /*Scope*/ 18, /*->32807*/
/* 32789*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32791*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32794*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32797*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SHSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1796:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SHSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32807*/      0, /*End of Scope*/
/* 32808*/    /*Scope*/ 45, /*->32854*/
/* 32809*/      OPC_CheckChild0Integer, 50|128,14/*1842*/, 
/* 32812*/      OPC_RecordChild1, // #0 = $Rn
/* 32813*/      OPC_RecordChild2, // #1 = $Rm
/* 32814*/      OPC_Scope, 18, /*->32834*/ // 2 children in Scope
/* 32816*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32818*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32821*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32824*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UHASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1842:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UHASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32834*/      /*Scope*/ 18, /*->32853*/
/* 32835*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32837*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32840*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32843*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UHASX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1842:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UHASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32853*/      0, /*End of Scope*/
/* 32854*/    /*Scope*/ 45, /*->32900*/
/* 32855*/      OPC_CheckChild0Integer, 48|128,14/*1840*/, 
/* 32858*/      OPC_RecordChild1, // #0 = $Rn
/* 32859*/      OPC_RecordChild2, // #1 = $Rm
/* 32860*/      OPC_Scope, 18, /*->32880*/ // 2 children in Scope
/* 32862*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32864*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32867*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32870*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UHADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1840:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UHADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32880*/      /*Scope*/ 18, /*->32899*/
/* 32881*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32883*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32886*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32889*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UHADD16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1840:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UHADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32899*/      0, /*End of Scope*/
/* 32900*/    /*Scope*/ 45, /*->32946*/
/* 32901*/      OPC_CheckChild0Integer, 49|128,14/*1841*/, 
/* 32904*/      OPC_RecordChild1, // #0 = $Rn
/* 32905*/      OPC_RecordChild2, // #1 = $Rm
/* 32906*/      OPC_Scope, 18, /*->32926*/ // 2 children in Scope
/* 32908*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32910*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32913*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32916*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UHADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1841:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UHADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32926*/      /*Scope*/ 18, /*->32945*/
/* 32927*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32929*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32932*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32935*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UHADD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1841:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UHADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32945*/      0, /*End of Scope*/
/* 32946*/    /*Scope*/ 45, /*->32992*/
/* 32947*/      OPC_CheckChild0Integer, 51|128,14/*1843*/, 
/* 32950*/      OPC_RecordChild1, // #0 = $Rn
/* 32951*/      OPC_RecordChild2, // #1 = $Rm
/* 32952*/      OPC_Scope, 18, /*->32972*/ // 2 children in Scope
/* 32954*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 32956*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32959*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32962*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UHSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1843:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UHSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 32972*/      /*Scope*/ 18, /*->32991*/
/* 32973*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 32975*/        OPC_EmitInteger, MVT::i32, 14, 
/* 32978*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 32981*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UHSAX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1843:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UHSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 32991*/      0, /*End of Scope*/
/* 32992*/    /*Scope*/ 45, /*->33038*/
/* 32993*/      OPC_CheckChild0Integer, 52|128,14/*1844*/, 
/* 32996*/      OPC_RecordChild1, // #0 = $Rn
/* 32997*/      OPC_RecordChild2, // #1 = $Rm
/* 32998*/      OPC_Scope, 18, /*->33018*/ // 2 children in Scope
/* 33000*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 33002*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33005*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33008*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UHSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1844:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UHSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 33018*/      /*Scope*/ 18, /*->33037*/
/* 33019*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33021*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33024*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33027*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UHSUB16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1844:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UHSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33037*/      0, /*End of Scope*/
/* 33038*/    /*Scope*/ 45, /*->33084*/
/* 33039*/      OPC_CheckChild0Integer, 53|128,14/*1845*/, 
/* 33042*/      OPC_RecordChild1, // #0 = $Rn
/* 33043*/      OPC_RecordChild2, // #1 = $Rm
/* 33044*/      OPC_Scope, 18, /*->33064*/ // 2 children in Scope
/* 33046*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 33048*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33051*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33054*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UHSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1845:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UHSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 33064*/      /*Scope*/ 18, /*->33083*/
/* 33065*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33067*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33070*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33073*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UHSUB8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1845:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UHSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33083*/      0, /*End of Scope*/
/* 33084*/    /*Scope*/ 45, /*->33130*/
/* 33085*/      OPC_CheckChild0Integer, 61|128,14/*1853*/, 
/* 33088*/      OPC_RecordChild1, // #0 = $Rn
/* 33089*/      OPC_RecordChild2, // #1 = $Rm
/* 33090*/      OPC_Scope, 18, /*->33110*/ // 2 children in Scope
/* 33092*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 33094*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33097*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33100*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::USAD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1853:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (USAD8:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 33110*/      /*Scope*/ 18, /*->33129*/
/* 33111*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33113*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33116*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33119*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USAD8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1853:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2USAD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33129*/      0, /*End of Scope*/
/* 33130*/    /*Scope*/ 48, /*->33179*/
/* 33131*/      OPC_CheckChild0Integer, 62|128,14/*1854*/, 
/* 33134*/      OPC_RecordChild1, // #0 = $Rn
/* 33135*/      OPC_RecordChild2, // #1 = $Rm
/* 33136*/      OPC_RecordChild3, // #2 = $Ra
/* 33137*/      OPC_Scope, 19, /*->33158*/ // 2 children in Scope
/* 33139*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 33141*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33144*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33147*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::USADA8), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1854:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (USADA8:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra)
/* 33158*/      /*Scope*/ 19, /*->33178*/
/* 33159*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33161*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33164*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33167*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USADA8), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1854:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (t2USADA8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 33178*/      0, /*End of Scope*/
/* 33179*/    /*Scope*/ 48, /*->33228*/
/* 33180*/      OPC_CheckChild0Integer, 7|128,14/*1799*/, 
/* 33183*/      OPC_RecordChild1, // #0 = $Rn
/* 33184*/      OPC_RecordChild2, // #1 = $Rm
/* 33185*/      OPC_RecordChild3, // #2 = $Ra
/* 33186*/      OPC_Scope, 19, /*->33207*/ // 2 children in Scope
/* 33188*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 33190*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33193*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33196*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLAD), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1799:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (SMLAD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
/* 33207*/      /*Scope*/ 19, /*->33227*/
/* 33208*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33210*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33213*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33216*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLAD), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1799:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (t2SMLAD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 33227*/      0, /*End of Scope*/
/* 33228*/    /*Scope*/ 48, /*->33277*/
/* 33229*/      OPC_CheckChild0Integer, 8|128,14/*1800*/, 
/* 33232*/      OPC_RecordChild1, // #0 = $Rn
/* 33233*/      OPC_RecordChild2, // #1 = $Rm
/* 33234*/      OPC_RecordChild3, // #2 = $Ra
/* 33235*/      OPC_Scope, 19, /*->33256*/ // 2 children in Scope
/* 33237*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 33239*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33242*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33245*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLADX), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1800:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (SMLADX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
/* 33256*/      /*Scope*/ 19, /*->33276*/
/* 33257*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33259*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33262*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33265*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLADX), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1800:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (t2SMLADX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 33276*/      0, /*End of Scope*/
/* 33277*/    /*Scope*/ 48, /*->33326*/
/* 33278*/      OPC_CheckChild0Integer, 15|128,14/*1807*/, 
/* 33281*/      OPC_RecordChild1, // #0 = $Rn
/* 33282*/      OPC_RecordChild2, // #1 = $Rm
/* 33283*/      OPC_RecordChild3, // #2 = $Ra
/* 33284*/      OPC_Scope, 19, /*->33305*/ // 2 children in Scope
/* 33286*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 33288*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33291*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33294*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLSD), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1807:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (SMLSD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
/* 33305*/      /*Scope*/ 19, /*->33325*/
/* 33306*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33308*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33311*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33314*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLSD), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1807:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (t2SMLSD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 33325*/      0, /*End of Scope*/
/* 33326*/    /*Scope*/ 48, /*->33375*/
/* 33327*/      OPC_CheckChild0Integer, 16|128,14/*1808*/, 
/* 33330*/      OPC_RecordChild1, // #0 = $Rn
/* 33331*/      OPC_RecordChild2, // #1 = $Rm
/* 33332*/      OPC_RecordChild3, // #2 = $Ra
/* 33333*/      OPC_Scope, 19, /*->33354*/ // 2 children in Scope
/* 33335*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 33337*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33340*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33343*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLSDX), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1808:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (SMLSDX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm, GPRnopc:{ *:[i32] }:$Ra)
/* 33354*/      /*Scope*/ 19, /*->33374*/
/* 33355*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33357*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33360*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33363*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLSDX), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1808:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra) - Complexity = 8
                  // Dst: (t2SMLSDX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Ra)
/* 33374*/      0, /*End of Scope*/
/* 33375*/    /*Scope*/ 45, /*->33421*/
/* 33376*/      OPC_CheckChild0Integer, 19|128,14/*1811*/, 
/* 33379*/      OPC_RecordChild1, // #0 = $Rn
/* 33380*/      OPC_RecordChild2, // #1 = $Rm
/* 33381*/      OPC_Scope, 18, /*->33401*/ // 2 children in Scope
/* 33383*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 33385*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33388*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33391*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMUAD), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1811:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SMUAD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 33401*/      /*Scope*/ 18, /*->33420*/
/* 33402*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33404*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33407*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33410*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMUAD), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1811:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMUAD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33420*/      0, /*End of Scope*/
/* 33421*/    /*Scope*/ 45, /*->33467*/
/* 33422*/      OPC_CheckChild0Integer, 20|128,14/*1812*/, 
/* 33425*/      OPC_RecordChild1, // #0 = $Rn
/* 33426*/      OPC_RecordChild2, // #1 = $Rm
/* 33427*/      OPC_Scope, 18, /*->33447*/ // 2 children in Scope
/* 33429*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 33431*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33434*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33437*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMUADX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1812:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SMUADX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 33447*/      /*Scope*/ 18, /*->33466*/
/* 33448*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33450*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33453*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33456*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMUADX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1812:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMUADX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33466*/      0, /*End of Scope*/
/* 33467*/    /*Scope*/ 45, /*->33513*/
/* 33468*/      OPC_CheckChild0Integer, 27|128,14/*1819*/, 
/* 33471*/      OPC_RecordChild1, // #0 = $Rn
/* 33472*/      OPC_RecordChild2, // #1 = $Rm
/* 33473*/      OPC_Scope, 18, /*->33493*/ // 2 children in Scope
/* 33475*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 33477*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33480*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33483*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMUSD), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1819:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SMUSD:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 33493*/      /*Scope*/ 18, /*->33512*/
/* 33494*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33496*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33499*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33502*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMUSD), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1819:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMUSD:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33512*/      0, /*End of Scope*/
/* 33513*/    /*Scope*/ 45, /*->33559*/
/* 33514*/      OPC_CheckChild0Integer, 28|128,14/*1820*/, 
/* 33517*/      OPC_RecordChild1, // #0 = $Rn
/* 33518*/      OPC_RecordChild2, // #1 = $Rm
/* 33519*/      OPC_Scope, 18, /*->33539*/ // 2 children in Scope
/* 33521*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 33523*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33526*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33529*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMUSDX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1820:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SMUSDX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 33539*/      /*Scope*/ 18, /*->33558*/
/* 33540*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33542*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33545*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33548*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMUSDX), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1820:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMUSDX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33558*/      0, /*End of Scope*/
/* 33559*/    /*Scope*/ 29, /*->33589*/
/* 33560*/      OPC_CheckChild0Integer, 99|128,11/*1507*/, 
/* 33563*/      OPC_RecordChild1, // #0 = $Rn
/* 33564*/      OPC_RecordChild2, // #1 = $Rm
/* 33565*/      OPC_Scope, 10, /*->33577*/ // 2 children in Scope
/* 33567*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb())
/* 33569*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CRC32B), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1507:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (CRC32B:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 33577*/      /*Scope*/ 10, /*->33588*/
/* 33578*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2())
/* 33580*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CRC32B), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1507:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2CRC32B:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33588*/      0, /*End of Scope*/
/* 33589*/    /*Scope*/ 29, /*->33619*/
/* 33590*/      OPC_CheckChild0Integer, 100|128,11/*1508*/, 
/* 33593*/      OPC_RecordChild1, // #0 = $Rn
/* 33594*/      OPC_RecordChild2, // #1 = $Rm
/* 33595*/      OPC_Scope, 10, /*->33607*/ // 2 children in Scope
/* 33597*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb())
/* 33599*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CRC32CB), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1508:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (CRC32CB:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 33607*/      /*Scope*/ 10, /*->33618*/
/* 33608*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2())
/* 33610*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CRC32CB), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1508:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2CRC32CB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33618*/      0, /*End of Scope*/
/* 33619*/    /*Scope*/ 29, /*->33649*/
/* 33620*/      OPC_CheckChild0Integer, 103|128,11/*1511*/, 
/* 33623*/      OPC_RecordChild1, // #0 = $Rn
/* 33624*/      OPC_RecordChild2, // #1 = $Rm
/* 33625*/      OPC_Scope, 10, /*->33637*/ // 2 children in Scope
/* 33627*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb())
/* 33629*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CRC32H), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1511:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (CRC32H:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 33637*/      /*Scope*/ 10, /*->33648*/
/* 33638*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2())
/* 33640*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CRC32H), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1511:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2CRC32H:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33648*/      0, /*End of Scope*/
/* 33649*/    /*Scope*/ 29, /*->33679*/
/* 33650*/      OPC_CheckChild0Integer, 101|128,11/*1509*/, 
/* 33653*/      OPC_RecordChild1, // #0 = $Rn
/* 33654*/      OPC_RecordChild2, // #1 = $Rm
/* 33655*/      OPC_Scope, 10, /*->33667*/ // 2 children in Scope
/* 33657*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb())
/* 33659*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CRC32CH), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1509:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (CRC32CH:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 33667*/      /*Scope*/ 10, /*->33678*/
/* 33668*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2())
/* 33670*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CRC32CH), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1509:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2CRC32CH:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33678*/      0, /*End of Scope*/
/* 33679*/    /*Scope*/ 29, /*->33709*/
/* 33680*/      OPC_CheckChild0Integer, 104|128,11/*1512*/, 
/* 33683*/      OPC_RecordChild1, // #0 = $Rn
/* 33684*/      OPC_RecordChild2, // #1 = $Rm
/* 33685*/      OPC_Scope, 10, /*->33697*/ // 2 children in Scope
/* 33687*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb())
/* 33689*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CRC32W), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1512:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (CRC32W:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 33697*/      /*Scope*/ 10, /*->33708*/
/* 33698*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2())
/* 33700*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CRC32W), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1512:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2CRC32W:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33708*/      0, /*End of Scope*/
/* 33709*/    /*Scope*/ 29, /*->33739*/
/* 33710*/      OPC_CheckChild0Integer, 102|128,11/*1510*/, 
/* 33713*/      OPC_RecordChild1, // #0 = $Rn
/* 33714*/      OPC_RecordChild2, // #1 = $Rm
/* 33715*/      OPC_Scope, 10, /*->33727*/ // 2 children in Scope
/* 33717*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb())
/* 33719*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::CRC32CW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1510:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (CRC32CW:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 33727*/      /*Scope*/ 10, /*->33738*/
/* 33728*/        OPC_CheckPatternPredicate, 20, // (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2())
/* 33730*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CRC32CW), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1510:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2CRC32CW:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33738*/      0, /*End of Scope*/
/* 33739*/    /*Scope*/ 45, /*->33785*/
/* 33740*/      OPC_CheckChild0Integer, 21|128,14/*1813*/, 
/* 33743*/      OPC_RecordChild1, // #0 = $a
/* 33744*/      OPC_RecordChild2, // #1 = $b
/* 33745*/      OPC_Scope, 18, /*->33765*/ // 2 children in Scope
/* 33747*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 33749*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33752*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33755*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULBB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1813:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) - Complexity = 8
                  // Dst: (SMULBB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 33765*/      /*Scope*/ 18, /*->33784*/
/* 33766*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33768*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33771*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33774*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULBB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1813:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMULBB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33784*/      0, /*End of Scope*/
/* 33785*/    /*Scope*/ 45, /*->33831*/
/* 33786*/      OPC_CheckChild0Integer, 22|128,14/*1814*/, 
/* 33789*/      OPC_RecordChild1, // #0 = $a
/* 33790*/      OPC_RecordChild2, // #1 = $b
/* 33791*/      OPC_Scope, 18, /*->33811*/ // 2 children in Scope
/* 33793*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 33795*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33798*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33801*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULBT), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1814:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) - Complexity = 8
                  // Dst: (SMULBT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 33811*/      /*Scope*/ 18, /*->33830*/
/* 33812*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33814*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33817*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33820*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULBT), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1814:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMULBT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33830*/      0, /*End of Scope*/
/* 33831*/    /*Scope*/ 45, /*->33877*/
/* 33832*/      OPC_CheckChild0Integer, 23|128,14/*1815*/, 
/* 33835*/      OPC_RecordChild1, // #0 = $a
/* 33836*/      OPC_RecordChild2, // #1 = $b
/* 33837*/      OPC_Scope, 18, /*->33857*/ // 2 children in Scope
/* 33839*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 33841*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33844*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33847*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULTB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1815:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) - Complexity = 8
                  // Dst: (SMULTB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 33857*/      /*Scope*/ 18, /*->33876*/
/* 33858*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33860*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33863*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33866*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULTB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1815:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMULTB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33876*/      0, /*End of Scope*/
/* 33877*/    /*Scope*/ 45, /*->33923*/
/* 33878*/      OPC_CheckChild0Integer, 24|128,14/*1816*/, 
/* 33881*/      OPC_RecordChild1, // #0 = $a
/* 33882*/      OPC_RecordChild2, // #1 = $b
/* 33883*/      OPC_Scope, 18, /*->33903*/ // 2 children in Scope
/* 33885*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 33887*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33890*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33893*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULTT), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1816:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) - Complexity = 8
                  // Dst: (SMULTT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 33903*/      /*Scope*/ 18, /*->33922*/
/* 33904*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33906*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33909*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33912*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULTT), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1816:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMULTT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33922*/      0, /*End of Scope*/
/* 33923*/    /*Scope*/ 45, /*->33969*/
/* 33924*/      OPC_CheckChild0Integer, 25|128,14/*1817*/, 
/* 33927*/      OPC_RecordChild1, // #0 = $a
/* 33928*/      OPC_RecordChild2, // #1 = $b
/* 33929*/      OPC_Scope, 18, /*->33949*/ // 2 children in Scope
/* 33931*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 33933*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33936*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33939*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULWB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1817:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) - Complexity = 8
                  // Dst: (SMULWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 33949*/      /*Scope*/ 18, /*->33968*/
/* 33950*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33952*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33955*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33958*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULWB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1817:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMULWB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 33968*/      0, /*End of Scope*/
/* 33969*/    /*Scope*/ 45, /*->34015*/
/* 33970*/      OPC_CheckChild0Integer, 26|128,14/*1818*/, 
/* 33973*/      OPC_RecordChild1, // #0 = $a
/* 33974*/      OPC_RecordChild2, // #1 = $b
/* 33975*/      OPC_Scope, 18, /*->33995*/ // 2 children in Scope
/* 33977*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 33979*/        OPC_EmitInteger, MVT::i32, 14, 
/* 33982*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 33985*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULWT), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1818:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) - Complexity = 8
                  // Dst: (SMULWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 33995*/      /*Scope*/ 18, /*->34014*/
/* 33996*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 33998*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34001*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34004*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULWT), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1818:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SMULWT:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 34014*/      0, /*End of Scope*/
/* 34015*/    /*Scope*/ 48, /*->34064*/
/* 34016*/      OPC_CheckChild0Integer, 5|128,14/*1797*/, 
/* 34019*/      OPC_RecordChild1, // #0 = $a
/* 34020*/      OPC_RecordChild2, // #1 = $b
/* 34021*/      OPC_RecordChild3, // #2 = $acc
/* 34022*/      OPC_Scope, 19, /*->34043*/ // 2 children in Scope
/* 34024*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 34026*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34029*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34032*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1797:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 34043*/      /*Scope*/ 19, /*->34063*/
/* 34044*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 34046*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34049*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34052*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1797:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (t2SMLABB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 34063*/      0, /*End of Scope*/
/* 34064*/    /*Scope*/ 48, /*->34113*/
/* 34065*/      OPC_CheckChild0Integer, 6|128,14/*1798*/, 
/* 34068*/      OPC_RecordChild1, // #0 = $a
/* 34069*/      OPC_RecordChild2, // #1 = $b
/* 34070*/      OPC_RecordChild3, // #2 = $acc
/* 34071*/      OPC_Scope, 19, /*->34092*/ // 2 children in Scope
/* 34073*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 34075*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34078*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34081*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLABT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1798:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (SMLABT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 34092*/      /*Scope*/ 19, /*->34112*/
/* 34093*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 34095*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34098*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34101*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLABT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1798:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (t2SMLABT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 34112*/      0, /*End of Scope*/
/* 34113*/    /*Scope*/ 48, /*->34162*/
/* 34114*/      OPC_CheckChild0Integer, 11|128,14/*1803*/, 
/* 34117*/      OPC_RecordChild1, // #0 = $a
/* 34118*/      OPC_RecordChild2, // #1 = $b
/* 34119*/      OPC_RecordChild3, // #2 = $acc
/* 34120*/      OPC_Scope, 19, /*->34141*/ // 2 children in Scope
/* 34122*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 34124*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34127*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34130*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLATB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1803:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (SMLATB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 34141*/      /*Scope*/ 19, /*->34161*/
/* 34142*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 34144*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34147*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34150*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLATB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1803:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (t2SMLATB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 34161*/      0, /*End of Scope*/
/* 34162*/    /*Scope*/ 48, /*->34211*/
/* 34163*/      OPC_CheckChild0Integer, 12|128,14/*1804*/, 
/* 34166*/      OPC_RecordChild1, // #0 = $a
/* 34167*/      OPC_RecordChild2, // #1 = $b
/* 34168*/      OPC_RecordChild3, // #2 = $acc
/* 34169*/      OPC_Scope, 19, /*->34190*/ // 2 children in Scope
/* 34171*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 34173*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34176*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34179*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLATT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1804:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (SMLATT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 34190*/      /*Scope*/ 19, /*->34210*/
/* 34191*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 34193*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34196*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34199*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLATT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1804:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (t2SMLATT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 34210*/      0, /*End of Scope*/
/* 34211*/    /*Scope*/ 48, /*->34260*/
/* 34212*/      OPC_CheckChild0Integer, 13|128,14/*1805*/, 
/* 34215*/      OPC_RecordChild1, // #0 = $a
/* 34216*/      OPC_RecordChild2, // #1 = $b
/* 34217*/      OPC_RecordChild3, // #2 = $acc
/* 34218*/      OPC_Scope, 19, /*->34239*/ // 2 children in Scope
/* 34220*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 34222*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34225*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34228*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLAWB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1805:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (SMLAWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 34239*/      /*Scope*/ 19, /*->34259*/
/* 34240*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 34242*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34245*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34248*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLAWB), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1805:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (t2SMLAWB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 34259*/      0, /*End of Scope*/
/* 34260*/    /*Scope*/ 48, /*->34309*/
/* 34261*/      OPC_CheckChild0Integer, 14|128,14/*1806*/, 
/* 34264*/      OPC_RecordChild1, // #0 = $a
/* 34265*/      OPC_RecordChild2, // #1 = $b
/* 34266*/      OPC_RecordChild3, // #2 = $acc
/* 34267*/      OPC_Scope, 19, /*->34288*/ // 2 children in Scope
/* 34269*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 34271*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34274*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34277*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMLAWT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1806:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (SMLAWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 34288*/      /*Scope*/ 19, /*->34308*/
/* 34289*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 34291*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34294*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34297*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMLAWT), 0,
                      MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1806:{ *:[iPTR] }, GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc) - Complexity = 8
                  // Dst: (t2SMLAWT:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b, GPR:{ *:[i32] }:$acc)
/* 34308*/      0, /*End of Scope*/
/* 34309*/    /*Scope*/ 23, /*->34333*/
/* 34310*/      OPC_CheckChild0Integer, 95|128,11/*1503*/, 
/* 34313*/      OPC_RecordChild1, // #0 = $Rn
/* 34314*/      OPC_CheckChild1Type, MVT::i32,
/* 34316*/      OPC_CheckPatternPredicate, 22, // (Subtarget->has8MSecExt()) && (Subtarget->isThumb())
/* 34318*/      OPC_EmitInteger, MVT::i32, 14, 
/* 34321*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34324*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TT), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 1503:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn) - Complexity = 8
                // Dst: (t2TT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn)
/* 34333*/    /*Scope*/ 23, /*->34357*/
/* 34334*/      OPC_CheckChild0Integer, 98|128,11/*1506*/, 
/* 34337*/      OPC_RecordChild1, // #0 = $Rn
/* 34338*/      OPC_CheckChild1Type, MVT::i32,
/* 34340*/      OPC_CheckPatternPredicate, 22, // (Subtarget->has8MSecExt()) && (Subtarget->isThumb())
/* 34342*/      OPC_EmitInteger, MVT::i32, 14, 
/* 34345*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34348*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TTT), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 1506:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn) - Complexity = 8
                // Dst: (t2TTT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn)
/* 34357*/    /*Scope*/ 23, /*->34381*/
/* 34358*/      OPC_CheckChild0Integer, 96|128,11/*1504*/, 
/* 34361*/      OPC_RecordChild1, // #0 = $Rn
/* 34362*/      OPC_CheckChild1Type, MVT::i32,
/* 34364*/      OPC_CheckPatternPredicate, 22, // (Subtarget->has8MSecExt()) && (Subtarget->isThumb())
/* 34366*/      OPC_EmitInteger, MVT::i32, 14, 
/* 34369*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34372*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TTA), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 1504:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn) - Complexity = 8
                // Dst: (t2TTA:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn)
/* 34381*/    /*Scope*/ 23, /*->34405*/
/* 34382*/      OPC_CheckChild0Integer, 97|128,11/*1505*/, 
/* 34385*/      OPC_RecordChild1, // #0 = $Rn
/* 34386*/      OPC_CheckChild1Type, MVT::i32,
/* 34388*/      OPC_CheckPatternPredicate, 22, // (Subtarget->has8MSecExt()) && (Subtarget->isThumb())
/* 34390*/      OPC_EmitInteger, MVT::i32, 14, 
/* 34393*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34396*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TTAT), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 1505:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn) - Complexity = 8
                // Dst: (t2TTAT:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn)
/* 34405*/    /*Scope*/ 23, /*->34429*/
/* 34406*/      OPC_CheckChild0Integer, 31|128,12/*1567*/, 
/* 34409*/      OPC_RecordChild1, // #0 = $RdaSrc
/* 34410*/      OPC_RecordChild2, // #1 = $Rm
/* 34411*/      OPC_CheckPatternPredicate, 18, // (Subtarget->hasMVEIntegerOps()) && (Subtarget->hasV8_1MMainlineOps())
/* 34413*/      OPC_EmitInteger, MVT::i32, 14, 
/* 34416*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34419*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_SQRSHR), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 1567:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                // Dst: (MVE_SQRSHR:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, rGPR:{ *:[i32] }:$Rm)
/* 34429*/    /*Scope*/ 23, /*->34453*/
/* 34430*/      OPC_CheckChild0Integer, 38|128,12/*1574*/, 
/* 34433*/      OPC_RecordChild1, // #0 = $RdaSrc
/* 34434*/      OPC_RecordChild2, // #1 = $Rm
/* 34435*/      OPC_CheckPatternPredicate, 18, // (Subtarget->hasMVEIntegerOps()) && (Subtarget->hasV8_1MMainlineOps())
/* 34437*/      OPC_EmitInteger, MVT::i32, 14, 
/* 34440*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34443*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_UQRSHL), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 1574:{ *:[iPTR] }, rGPR:{ *:[i32] }:$RdaSrc, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                // Dst: (MVE_UQRSHL:{ *:[i32] } rGPR:{ *:[i32] }:$RdaSrc, rGPR:{ *:[i32] }:$Rm)
/* 34453*/    /*Scope*/ 70, /*->34524*/
/* 34454*/      OPC_CheckChild0Integer, 13|128,12/*1549*/, 
/* 34457*/      OPC_RecordChild1, // #0 = $prev
/* 34458*/      OPC_RecordChild2, // #1 = $vec
/* 34459*/      OPC_Scope, 20, /*->34481*/ // 3 children in Scope
/* 34461*/        OPC_CheckChild2Type, MVT::v16i8,
/* 34463*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 34465*/        OPC_EmitInteger, MVT::i32, 0, 
/* 34468*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34471*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINVs8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1549:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec) - Complexity = 8
                  // Dst: (MVE_VMINVs8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
/* 34481*/      /*Scope*/ 20, /*->34502*/
/* 34482*/        OPC_CheckChild2Type, MVT::v8i16,
/* 34484*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 34486*/        OPC_EmitInteger, MVT::i32, 0, 
/* 34489*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34492*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINVs16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1549:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec) - Complexity = 8
                  // Dst: (MVE_VMINVs16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
/* 34502*/      /*Scope*/ 20, /*->34523*/
/* 34503*/        OPC_CheckChild2Type, MVT::v4i32,
/* 34505*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 34507*/        OPC_EmitInteger, MVT::i32, 0, 
/* 34510*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34513*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINVs32), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1549:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec) - Complexity = 8
                  // Dst: (MVE_VMINVs32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
/* 34523*/      0, /*End of Scope*/
/* 34524*/    /*Scope*/ 70, /*->34595*/
/* 34525*/      OPC_CheckChild0Integer, 14|128,12/*1550*/, 
/* 34528*/      OPC_RecordChild1, // #0 = $prev
/* 34529*/      OPC_RecordChild2, // #1 = $vec
/* 34530*/      OPC_Scope, 20, /*->34552*/ // 3 children in Scope
/* 34532*/        OPC_CheckChild2Type, MVT::v16i8,
/* 34534*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 34536*/        OPC_EmitInteger, MVT::i32, 0, 
/* 34539*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34542*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINVu8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1550:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec) - Complexity = 8
                  // Dst: (MVE_VMINVu8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
/* 34552*/      /*Scope*/ 20, /*->34573*/
/* 34553*/        OPC_CheckChild2Type, MVT::v8i16,
/* 34555*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 34557*/        OPC_EmitInteger, MVT::i32, 0, 
/* 34560*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34563*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINVu16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1550:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec) - Complexity = 8
                  // Dst: (MVE_VMINVu16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
/* 34573*/      /*Scope*/ 20, /*->34594*/
/* 34574*/        OPC_CheckChild2Type, MVT::v4i32,
/* 34576*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 34578*/        OPC_EmitInteger, MVT::i32, 0, 
/* 34581*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34584*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINVu32), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1550:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec) - Complexity = 8
                  // Dst: (MVE_VMINVu32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
/* 34594*/      0, /*End of Scope*/
/* 34595*/    /*Scope*/ 70, /*->34666*/
/* 34596*/      OPC_CheckChild0Integer, 10|128,12/*1546*/, 
/* 34599*/      OPC_RecordChild1, // #0 = $prev
/* 34600*/      OPC_RecordChild2, // #1 = $vec
/* 34601*/      OPC_Scope, 20, /*->34623*/ // 3 children in Scope
/* 34603*/        OPC_CheckChild2Type, MVT::v16i8,
/* 34605*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 34607*/        OPC_EmitInteger, MVT::i32, 0, 
/* 34610*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34613*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXVs8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1546:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec) - Complexity = 8
                  // Dst: (MVE_VMAXVs8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
/* 34623*/      /*Scope*/ 20, /*->34644*/
/* 34624*/        OPC_CheckChild2Type, MVT::v8i16,
/* 34626*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 34628*/        OPC_EmitInteger, MVT::i32, 0, 
/* 34631*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34634*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXVs16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1546:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec) - Complexity = 8
                  // Dst: (MVE_VMAXVs16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
/* 34644*/      /*Scope*/ 20, /*->34665*/
/* 34645*/        OPC_CheckChild2Type, MVT::v4i32,
/* 34647*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 34649*/        OPC_EmitInteger, MVT::i32, 0, 
/* 34652*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34655*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXVs32), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1546:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec) - Complexity = 8
                  // Dst: (MVE_VMAXVs32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
/* 34665*/      0, /*End of Scope*/
/* 34666*/    /*Scope*/ 70, /*->34737*/
/* 34667*/      OPC_CheckChild0Integer, 11|128,12/*1547*/, 
/* 34670*/      OPC_RecordChild1, // #0 = $prev
/* 34671*/      OPC_RecordChild2, // #1 = $vec
/* 34672*/      OPC_Scope, 20, /*->34694*/ // 3 children in Scope
/* 34674*/        OPC_CheckChild2Type, MVT::v16i8,
/* 34676*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 34678*/        OPC_EmitInteger, MVT::i32, 0, 
/* 34681*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34684*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXVu8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1547:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec) - Complexity = 8
                  // Dst: (MVE_VMAXVu8:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v16i8] }:$vec)
/* 34694*/      /*Scope*/ 20, /*->34715*/
/* 34695*/        OPC_CheckChild2Type, MVT::v8i16,
/* 34697*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 34699*/        OPC_EmitInteger, MVT::i32, 0, 
/* 34702*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34705*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXVu16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1547:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec) - Complexity = 8
                  // Dst: (MVE_VMAXVu16:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v8i16] }:$vec)
/* 34715*/      /*Scope*/ 20, /*->34736*/
/* 34716*/        OPC_CheckChild2Type, MVT::v4i32,
/* 34718*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 34720*/        OPC_EmitInteger, MVT::i32, 0, 
/* 34723*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34726*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXVu32), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 1547:{ *:[iPTR] }, rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec) - Complexity = 8
                  // Dst: (MVE_VMAXVu32:{ *:[i32] } rGPR:{ *:[i32] }:$prev, MQPR:{ *:[v4i32] }:$vec)
/* 34736*/      0, /*End of Scope*/
/* 34737*/    /*Scope*/ 61, /*->34799*/
/* 34738*/      OPC_CheckChild0Integer, 116|128,12/*1652*/, 
/* 34741*/      OPC_RecordChild1, // #0 = $Rn
/* 34742*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 34744*/      OPC_EmitInteger, MVT::i64, 0, 
/* 34747*/      OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 34750*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 34758*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 34761*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::v16i8, 3/*#Ops*/, 1, 3, 4,  // Results = #5
/* 34770*/      OPC_EmitNode1, TARGET_VAL(ARM::SHA1H), 0,
                    MVT::v16i8, 1/*#Ops*/, 5,  // Results = #6
/* 34777*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 34780*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f32, 2/*#Ops*/, 6, 7,  // Results = #8
/* 34788*/      OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/* 34791*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::i32, 2/*#Ops*/, 8, 9, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 1652:{ *:[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] })
/* 34799*/    /*Scope*/ 97, /*->34897*/
/* 34800*/      OPC_CheckChild0Integer, 83|128,13/*1747*/, 
/* 34803*/      OPC_RecordChild1, // #0 = $Sm
/* 34804*/      OPC_SwitchType /*7 cases */, 11, MVT::f16,// ->34818
/* 34807*/        OPC_CheckChild1Type, MVT::f16,
/* 34809*/        OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/* 34811*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTNH), 0,
                      MVT::f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f16] } 1747:{ *:[iPTR] }, HPR:{ *:[f16] }:$Sm) - Complexity = 8
                  // Dst: (VRINTNH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
/* 34818*/      /*SwitchType*/ 11, MVT::f32,// ->34831
/* 34820*/        OPC_CheckChild1Type, MVT::f32,
/* 34822*/        OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/* 34824*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTNS), 0,
                      MVT::f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 1747:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) - Complexity = 8
                  // Dst: (VRINTNS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 34831*/      /*SwitchType*/ 11, MVT::f64,// ->34844
/* 34833*/        OPC_CheckChild1Type, MVT::f64,
/* 34835*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/* 34837*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTND), 0,
                      MVT::f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[f64] } 1747:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) - Complexity = 8
                  // Dst: (VRINTND:{ *:[f64] } DPR:{ *:[f64] }:$Dm)
/* 34844*/      /*SwitchType*/ 11, MVT::v2f32,// ->34857
/* 34846*/        OPC_CheckChild1Type, MVT::v2f32,
/* 34848*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 34850*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTNNDf), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1747:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTNNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 34857*/      /*SwitchType*/ 11, MVT::v4f32,// ->34870
/* 34859*/        OPC_CheckChild1Type, MVT::v4f32,
/* 34861*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 34863*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTNNQf), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1747:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTNNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 34870*/      /*SwitchType*/ 11, MVT::v4f16,// ->34883
/* 34872*/        OPC_CheckChild1Type, MVT::v4f16,
/* 34874*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 34876*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTNNDh), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1747:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTNNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 34883*/      /*SwitchType*/ 11, MVT::v8f16,// ->34896
/* 34885*/        OPC_CheckChild1Type, MVT::v8f16,
/* 34887*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 34889*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTNNQh), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1747:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTNNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 34896*/      0, // EndSwitchType
/* 34897*/    /*Scope*/ 46, /*->34944*/
/* 34898*/      OPC_CheckChild0Integer, 70|128,14/*1862*/, 
/* 34901*/      OPC_RecordChild1, // #0 = $Dm
/* 34902*/      OPC_Scope, 19, /*->34923*/ // 2 children in Scope
/* 34904*/        OPC_CheckChild1Type, MVT::f64,
/* 34906*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/* 34908*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34911*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34914*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VTOSIRD), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 1862:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) - Complexity = 8
                  // Dst: (VTOSIRD:{ *:[f32] } DPR:{ *:[f64] }:$Dm)
/* 34923*/      /*Scope*/ 19, /*->34943*/
/* 34924*/        OPC_CheckChild1Type, MVT::f32,
/* 34926*/        OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/* 34928*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34931*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34934*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VTOSIRS), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 1862:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) - Complexity = 8
                  // Dst: (VTOSIRS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 34943*/      0, /*End of Scope*/
/* 34944*/    /*Scope*/ 46, /*->34991*/
/* 34945*/      OPC_CheckChild0Integer, 71|128,14/*1863*/, 
/* 34948*/      OPC_RecordChild1, // #0 = $Dm
/* 34949*/      OPC_Scope, 19, /*->34970*/ // 2 children in Scope
/* 34951*/        OPC_CheckChild1Type, MVT::f64,
/* 34953*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/* 34955*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34958*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34961*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VTOUIRD), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 1863:{ *:[iPTR] }, DPR:{ *:[f64] }:$Dm) - Complexity = 8
                  // Dst: (VTOUIRD:{ *:[f32] } DPR:{ *:[f64] }:$Dm)
/* 34970*/      /*Scope*/ 19, /*->34990*/
/* 34971*/        OPC_CheckChild1Type, MVT::f32,
/* 34973*/        OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/* 34975*/        OPC_EmitInteger, MVT::i32, 14, 
/* 34978*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 34981*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VTOUIRS), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[f32] } 1863:{ *:[iPTR] }, SPR:{ *:[f32] }:$Sm) - Complexity = 8
                  // Dst: (VTOUIRS:{ *:[f32] } SPR:{ *:[f32] }:$Sm)
/* 34990*/      0, /*End of Scope*/
/* 34991*/    /*Scope*/ 88|128,10/*1368*/, /*->36361*/
/* 34993*/      OPC_CheckChild0Integer, 96|128,12/*1632*/, 
/* 34996*/      OPC_RecordChild1, // #0 = $QdSrc
/* 34997*/      OPC_Scope, 39|128,5/*679*/, /*->35679*/ // 2 children in Scope
/* 35000*/        OPC_CheckChild1Type, MVT::v16i8,
/* 35002*/        OPC_RecordChild2, // #1 = $Qm
/* 35003*/        OPC_CheckChild2Type, MVT::v8i16,
/* 35005*/        OPC_RecordChild3, // #2 = $imm
/* 35006*/        OPC_MoveChild3,
/* 35007*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 35010*/        OPC_CheckPredicate, 34, // Predicate_shr_imm8
/* 35012*/        OPC_MoveParent,
/* 35013*/        OPC_Scope, 13|128,2/*269*/, /*->35285*/ // 2 children in Scope
/* 35016*/          OPC_CheckChild4Integer, 0, 
/* 35018*/          OPC_MoveChild5,
/* 35019*/          OPC_Scope, 2|128,1/*130*/, /*->35152*/ // 2 children in Scope
/* 35022*/            OPC_CheckInteger, 0, 
/* 35024*/            OPC_MoveParent,
/* 35025*/            OPC_MoveChild6,
/* 35026*/            OPC_Scope, 61, /*->35089*/ // 2 children in Scope
/* 35028*/              OPC_CheckInteger, 0, 
/* 35030*/              OPC_MoveParent,
/* 35031*/              OPC_MoveChild7,
/* 35032*/              OPC_CheckInteger, 0, 
/* 35034*/              OPC_MoveParent,
/* 35035*/              OPC_MoveChild, 8,
/* 35037*/              OPC_Scope, 24, /*->35063*/ // 2 children in Scope
/* 35039*/                OPC_CheckInteger, 0, 
/* 35041*/                OPC_MoveParent,
/* 35042*/                OPC_CheckType, MVT::v16i8,
/* 35044*/                OPC_EmitConvertToTarget, 2,
/* 35046*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35049*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35052*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi16bh), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35063*/              /*Scope*/ 24, /*->35088*/
/* 35064*/                OPC_CheckInteger, 1, 
/* 35066*/                OPC_MoveParent,
/* 35067*/                OPC_CheckType, MVT::v16i8,
/* 35069*/                OPC_EmitConvertToTarget, 2,
/* 35071*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35074*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35077*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi16th), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35088*/              0, /*End of Scope*/
/* 35089*/            /*Scope*/ 61, /*->35151*/
/* 35090*/              OPC_CheckInteger, 1, 
/* 35092*/              OPC_MoveParent,
/* 35093*/              OPC_MoveChild7,
/* 35094*/              OPC_CheckInteger, 1, 
/* 35096*/              OPC_MoveParent,
/* 35097*/              OPC_MoveChild, 8,
/* 35099*/              OPC_Scope, 24, /*->35125*/ // 2 children in Scope
/* 35101*/                OPC_CheckInteger, 0, 
/* 35103*/                OPC_MoveParent,
/* 35104*/                OPC_CheckType, MVT::v16i8,
/* 35106*/                OPC_EmitConvertToTarget, 2,
/* 35108*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35111*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35114*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi16bh), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35125*/              /*Scope*/ 24, /*->35150*/
/* 35126*/                OPC_CheckInteger, 1, 
/* 35128*/                OPC_MoveParent,
/* 35129*/                OPC_CheckType, MVT::v16i8,
/* 35131*/                OPC_EmitConvertToTarget, 2,
/* 35133*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35136*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35139*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi16th), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35150*/              0, /*End of Scope*/
/* 35151*/            0, /*End of Scope*/
/* 35152*/          /*Scope*/ 2|128,1/*130*/, /*->35284*/
/* 35154*/            OPC_CheckInteger, 1, 
/* 35156*/            OPC_MoveParent,
/* 35157*/            OPC_MoveChild6,
/* 35158*/            OPC_Scope, 61, /*->35221*/ // 2 children in Scope
/* 35160*/              OPC_CheckInteger, 0, 
/* 35162*/              OPC_MoveParent,
/* 35163*/              OPC_MoveChild7,
/* 35164*/              OPC_CheckInteger, 0, 
/* 35166*/              OPC_MoveParent,
/* 35167*/              OPC_MoveChild, 8,
/* 35169*/              OPC_Scope, 24, /*->35195*/ // 2 children in Scope
/* 35171*/                OPC_CheckInteger, 0, 
/* 35173*/                OPC_MoveParent,
/* 35174*/                OPC_CheckType, MVT::v16i8,
/* 35176*/                OPC_EmitConvertToTarget, 2,
/* 35178*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35181*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35184*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi16bh), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VRSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35195*/              /*Scope*/ 24, /*->35220*/
/* 35196*/                OPC_CheckInteger, 1, 
/* 35198*/                OPC_MoveParent,
/* 35199*/                OPC_CheckType, MVT::v16i8,
/* 35201*/                OPC_EmitConvertToTarget, 2,
/* 35203*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35206*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35209*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi16th), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VRSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35220*/              0, /*End of Scope*/
/* 35221*/            /*Scope*/ 61, /*->35283*/
/* 35222*/              OPC_CheckInteger, 1, 
/* 35224*/              OPC_MoveParent,
/* 35225*/              OPC_MoveChild7,
/* 35226*/              OPC_CheckInteger, 1, 
/* 35228*/              OPC_MoveParent,
/* 35229*/              OPC_MoveChild, 8,
/* 35231*/              OPC_Scope, 24, /*->35257*/ // 2 children in Scope
/* 35233*/                OPC_CheckInteger, 0, 
/* 35235*/                OPC_MoveParent,
/* 35236*/                OPC_CheckType, MVT::v16i8,
/* 35238*/                OPC_EmitConvertToTarget, 2,
/* 35240*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35243*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35246*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi16bh), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VRSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35257*/              /*Scope*/ 24, /*->35282*/
/* 35258*/                OPC_CheckInteger, 1, 
/* 35260*/                OPC_MoveParent,
/* 35261*/                OPC_CheckType, MVT::v16i8,
/* 35263*/                OPC_EmitConvertToTarget, 2,
/* 35265*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35268*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35271*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi16th), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VRSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35282*/              0, /*End of Scope*/
/* 35283*/            0, /*End of Scope*/
/* 35284*/          0, /*End of Scope*/
/* 35285*/        /*Scope*/ 7|128,3/*391*/, /*->35678*/
/* 35287*/          OPC_CheckChild4Integer, 1, 
/* 35289*/          OPC_MoveChild5,
/* 35290*/          OPC_Scope, 63|128,1/*191*/, /*->35484*/ // 2 children in Scope
/* 35293*/            OPC_CheckInteger, 0, 
/* 35295*/            OPC_MoveParent,
/* 35296*/            OPC_MoveChild6,
/* 35297*/            OPC_Scope, 61, /*->35360*/ // 2 children in Scope
/* 35299*/              OPC_CheckInteger, 0, 
/* 35301*/              OPC_MoveParent,
/* 35302*/              OPC_MoveChild7,
/* 35303*/              OPC_CheckInteger, 0, 
/* 35305*/              OPC_MoveParent,
/* 35306*/              OPC_MoveChild, 8,
/* 35308*/              OPC_Scope, 24, /*->35334*/ // 2 children in Scope
/* 35310*/                OPC_CheckInteger, 0, 
/* 35312*/                OPC_MoveParent,
/* 35313*/                OPC_CheckType, MVT::v16i8,
/* 35315*/                OPC_EmitConvertToTarget, 2,
/* 35317*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35320*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35323*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNbhs16), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VQSHRNbhs16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35334*/              /*Scope*/ 24, /*->35359*/
/* 35335*/                OPC_CheckInteger, 1, 
/* 35337*/                OPC_MoveParent,
/* 35338*/                OPC_CheckType, MVT::v16i8,
/* 35340*/                OPC_EmitConvertToTarget, 2,
/* 35342*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35345*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35348*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNths16), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VQSHRNths16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35359*/              0, /*End of Scope*/
/* 35360*/            /*Scope*/ 122, /*->35483*/
/* 35361*/              OPC_CheckInteger, 1, 
/* 35363*/              OPC_MoveParent,
/* 35364*/              OPC_MoveChild7,
/* 35365*/              OPC_Scope, 57, /*->35424*/ // 2 children in Scope
/* 35367*/                OPC_CheckInteger, 1, 
/* 35369*/                OPC_MoveParent,
/* 35370*/                OPC_MoveChild, 8,
/* 35372*/                OPC_Scope, 24, /*->35398*/ // 2 children in Scope
/* 35374*/                  OPC_CheckInteger, 0, 
/* 35376*/                  OPC_MoveParent,
/* 35377*/                  OPC_CheckType, MVT::v16i8,
/* 35379*/                  OPC_EmitConvertToTarget, 2,
/* 35381*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 35384*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35387*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNbhu16), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQSHRNbhu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35398*/                /*Scope*/ 24, /*->35423*/
/* 35399*/                  OPC_CheckInteger, 1, 
/* 35401*/                  OPC_MoveParent,
/* 35402*/                  OPC_CheckType, MVT::v16i8,
/* 35404*/                  OPC_EmitConvertToTarget, 2,
/* 35406*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 35409*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35412*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNthu16), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQSHRNthu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35423*/                0, /*End of Scope*/
/* 35424*/              /*Scope*/ 57, /*->35482*/
/* 35425*/                OPC_CheckInteger, 0, 
/* 35427*/                OPC_MoveParent,
/* 35428*/                OPC_MoveChild, 8,
/* 35430*/                OPC_Scope, 24, /*->35456*/ // 2 children in Scope
/* 35432*/                  OPC_CheckInteger, 0, 
/* 35434*/                  OPC_MoveParent,
/* 35435*/                  OPC_CheckType, MVT::v16i8,
/* 35437*/                  OPC_EmitConvertToTarget, 2,
/* 35439*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 35442*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35445*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRUNs16bh), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQSHRUNs16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35456*/                /*Scope*/ 24, /*->35481*/
/* 35457*/                  OPC_CheckInteger, 1, 
/* 35459*/                  OPC_MoveParent,
/* 35460*/                  OPC_CheckType, MVT::v16i8,
/* 35462*/                  OPC_EmitConvertToTarget, 2,
/* 35464*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 35467*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35470*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRUNs16th), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQSHRUNs16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35481*/                0, /*End of Scope*/
/* 35482*/              0, /*End of Scope*/
/* 35483*/            0, /*End of Scope*/
/* 35484*/          /*Scope*/ 63|128,1/*191*/, /*->35677*/
/* 35486*/            OPC_CheckInteger, 1, 
/* 35488*/            OPC_MoveParent,
/* 35489*/            OPC_MoveChild6,
/* 35490*/            OPC_Scope, 61, /*->35553*/ // 2 children in Scope
/* 35492*/              OPC_CheckInteger, 0, 
/* 35494*/              OPC_MoveParent,
/* 35495*/              OPC_MoveChild7,
/* 35496*/              OPC_CheckInteger, 0, 
/* 35498*/              OPC_MoveParent,
/* 35499*/              OPC_MoveChild, 8,
/* 35501*/              OPC_Scope, 24, /*->35527*/ // 2 children in Scope
/* 35503*/                OPC_CheckInteger, 0, 
/* 35505*/                OPC_MoveParent,
/* 35506*/                OPC_CheckType, MVT::v16i8,
/* 35508*/                OPC_EmitConvertToTarget, 2,
/* 35510*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35513*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35516*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNbhs16), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VQRSHRNbhs16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35527*/              /*Scope*/ 24, /*->35552*/
/* 35528*/                OPC_CheckInteger, 1, 
/* 35530*/                OPC_MoveParent,
/* 35531*/                OPC_CheckType, MVT::v16i8,
/* 35533*/                OPC_EmitConvertToTarget, 2,
/* 35535*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35538*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35541*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNths16), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VQRSHRNths16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35552*/              0, /*End of Scope*/
/* 35553*/            /*Scope*/ 122, /*->35676*/
/* 35554*/              OPC_CheckInteger, 1, 
/* 35556*/              OPC_MoveParent,
/* 35557*/              OPC_MoveChild7,
/* 35558*/              OPC_Scope, 57, /*->35617*/ // 2 children in Scope
/* 35560*/                OPC_CheckInteger, 1, 
/* 35562*/                OPC_MoveParent,
/* 35563*/                OPC_MoveChild, 8,
/* 35565*/                OPC_Scope, 24, /*->35591*/ // 2 children in Scope
/* 35567*/                  OPC_CheckInteger, 0, 
/* 35569*/                  OPC_MoveParent,
/* 35570*/                  OPC_CheckType, MVT::v16i8,
/* 35572*/                  OPC_EmitConvertToTarget, 2,
/* 35574*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 35577*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35580*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNbhu16), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQRSHRNbhu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35591*/                /*Scope*/ 24, /*->35616*/
/* 35592*/                  OPC_CheckInteger, 1, 
/* 35594*/                  OPC_MoveParent,
/* 35595*/                  OPC_CheckType, MVT::v16i8,
/* 35597*/                  OPC_EmitConvertToTarget, 2,
/* 35599*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 35602*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35605*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNthu16), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQRSHRNthu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35616*/                0, /*End of Scope*/
/* 35617*/              /*Scope*/ 57, /*->35675*/
/* 35618*/                OPC_CheckInteger, 0, 
/* 35620*/                OPC_MoveParent,
/* 35621*/                OPC_MoveChild, 8,
/* 35623*/                OPC_Scope, 24, /*->35649*/ // 2 children in Scope
/* 35625*/                  OPC_CheckInteger, 0, 
/* 35627*/                  OPC_MoveParent,
/* 35628*/                  OPC_CheckType, MVT::v16i8,
/* 35630*/                  OPC_EmitConvertToTarget, 2,
/* 35632*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 35635*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35638*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRUNs16bh), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQRSHRUNs16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35649*/                /*Scope*/ 24, /*->35674*/
/* 35650*/                  OPC_CheckInteger, 1, 
/* 35652*/                  OPC_MoveParent,
/* 35653*/                  OPC_CheckType, MVT::v16i8,
/* 35655*/                  OPC_EmitConvertToTarget, 2,
/* 35657*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 35660*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35663*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRUNs16th), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1632:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQRSHRUNs16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35674*/                0, /*End of Scope*/
/* 35675*/              0, /*End of Scope*/
/* 35676*/            0, /*End of Scope*/
/* 35677*/          0, /*End of Scope*/
/* 35678*/        0, /*End of Scope*/
/* 35679*/      /*Scope*/ 39|128,5/*679*/, /*->36360*/
/* 35681*/        OPC_CheckChild1Type, MVT::v8i16,
/* 35683*/        OPC_RecordChild2, // #1 = $Qm
/* 35684*/        OPC_CheckChild2Type, MVT::v4i32,
/* 35686*/        OPC_RecordChild3, // #2 = $imm
/* 35687*/        OPC_MoveChild3,
/* 35688*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 35691*/        OPC_CheckPredicate, 35, // Predicate_shr_imm16
/* 35693*/        OPC_MoveParent,
/* 35694*/        OPC_Scope, 13|128,2/*269*/, /*->35966*/ // 2 children in Scope
/* 35697*/          OPC_CheckChild4Integer, 0, 
/* 35699*/          OPC_MoveChild5,
/* 35700*/          OPC_Scope, 2|128,1/*130*/, /*->35833*/ // 2 children in Scope
/* 35703*/            OPC_CheckInteger, 0, 
/* 35705*/            OPC_MoveParent,
/* 35706*/            OPC_MoveChild6,
/* 35707*/            OPC_Scope, 61, /*->35770*/ // 2 children in Scope
/* 35709*/              OPC_CheckInteger, 0, 
/* 35711*/              OPC_MoveParent,
/* 35712*/              OPC_MoveChild7,
/* 35713*/              OPC_CheckInteger, 0, 
/* 35715*/              OPC_MoveParent,
/* 35716*/              OPC_MoveChild, 8,
/* 35718*/              OPC_Scope, 24, /*->35744*/ // 2 children in Scope
/* 35720*/                OPC_CheckInteger, 0, 
/* 35722*/                OPC_MoveParent,
/* 35723*/                OPC_CheckType, MVT::v8i16,
/* 35725*/                OPC_EmitConvertToTarget, 2,
/* 35727*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35730*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35733*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi32bh), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35744*/              /*Scope*/ 24, /*->35769*/
/* 35745*/                OPC_CheckInteger, 1, 
/* 35747*/                OPC_MoveParent,
/* 35748*/                OPC_CheckType, MVT::v8i16,
/* 35750*/                OPC_EmitConvertToTarget, 2,
/* 35752*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35755*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35758*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi32th), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35769*/              0, /*End of Scope*/
/* 35770*/            /*Scope*/ 61, /*->35832*/
/* 35771*/              OPC_CheckInteger, 1, 
/* 35773*/              OPC_MoveParent,
/* 35774*/              OPC_MoveChild7,
/* 35775*/              OPC_CheckInteger, 1, 
/* 35777*/              OPC_MoveParent,
/* 35778*/              OPC_MoveChild, 8,
/* 35780*/              OPC_Scope, 24, /*->35806*/ // 2 children in Scope
/* 35782*/                OPC_CheckInteger, 0, 
/* 35784*/                OPC_MoveParent,
/* 35785*/                OPC_CheckType, MVT::v8i16,
/* 35787*/                OPC_EmitConvertToTarget, 2,
/* 35789*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35792*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35795*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi32bh), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35806*/              /*Scope*/ 24, /*->35831*/
/* 35807*/                OPC_CheckInteger, 1, 
/* 35809*/                OPC_MoveParent,
/* 35810*/                OPC_CheckType, MVT::v8i16,
/* 35812*/                OPC_EmitConvertToTarget, 2,
/* 35814*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35817*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35820*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi32th), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35831*/              0, /*End of Scope*/
/* 35832*/            0, /*End of Scope*/
/* 35833*/          /*Scope*/ 2|128,1/*130*/, /*->35965*/
/* 35835*/            OPC_CheckInteger, 1, 
/* 35837*/            OPC_MoveParent,
/* 35838*/            OPC_MoveChild6,
/* 35839*/            OPC_Scope, 61, /*->35902*/ // 2 children in Scope
/* 35841*/              OPC_CheckInteger, 0, 
/* 35843*/              OPC_MoveParent,
/* 35844*/              OPC_MoveChild7,
/* 35845*/              OPC_CheckInteger, 0, 
/* 35847*/              OPC_MoveParent,
/* 35848*/              OPC_MoveChild, 8,
/* 35850*/              OPC_Scope, 24, /*->35876*/ // 2 children in Scope
/* 35852*/                OPC_CheckInteger, 0, 
/* 35854*/                OPC_MoveParent,
/* 35855*/                OPC_CheckType, MVT::v8i16,
/* 35857*/                OPC_EmitConvertToTarget, 2,
/* 35859*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35862*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35865*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi32bh), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VRSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35876*/              /*Scope*/ 24, /*->35901*/
/* 35877*/                OPC_CheckInteger, 1, 
/* 35879*/                OPC_MoveParent,
/* 35880*/                OPC_CheckType, MVT::v8i16,
/* 35882*/                OPC_EmitConvertToTarget, 2,
/* 35884*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35887*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35890*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi32th), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VRSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35901*/              0, /*End of Scope*/
/* 35902*/            /*Scope*/ 61, /*->35964*/
/* 35903*/              OPC_CheckInteger, 1, 
/* 35905*/              OPC_MoveParent,
/* 35906*/              OPC_MoveChild7,
/* 35907*/              OPC_CheckInteger, 1, 
/* 35909*/              OPC_MoveParent,
/* 35910*/              OPC_MoveChild, 8,
/* 35912*/              OPC_Scope, 24, /*->35938*/ // 2 children in Scope
/* 35914*/                OPC_CheckInteger, 0, 
/* 35916*/                OPC_MoveParent,
/* 35917*/                OPC_CheckType, MVT::v8i16,
/* 35919*/                OPC_EmitConvertToTarget, 2,
/* 35921*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35924*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35927*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi32bh), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VRSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35938*/              /*Scope*/ 24, /*->35963*/
/* 35939*/                OPC_CheckInteger, 1, 
/* 35941*/                OPC_MoveParent,
/* 35942*/                OPC_CheckType, MVT::v8i16,
/* 35944*/                OPC_EmitConvertToTarget, 2,
/* 35946*/                OPC_EmitInteger, MVT::i32, 0, 
/* 35949*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 35952*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi32th), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VRSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 35963*/              0, /*End of Scope*/
/* 35964*/            0, /*End of Scope*/
/* 35965*/          0, /*End of Scope*/
/* 35966*/        /*Scope*/ 7|128,3/*391*/, /*->36359*/
/* 35968*/          OPC_CheckChild4Integer, 1, 
/* 35970*/          OPC_MoveChild5,
/* 35971*/          OPC_Scope, 63|128,1/*191*/, /*->36165*/ // 2 children in Scope
/* 35974*/            OPC_CheckInteger, 0, 
/* 35976*/            OPC_MoveParent,
/* 35977*/            OPC_MoveChild6,
/* 35978*/            OPC_Scope, 61, /*->36041*/ // 2 children in Scope
/* 35980*/              OPC_CheckInteger, 0, 
/* 35982*/              OPC_MoveParent,
/* 35983*/              OPC_MoveChild7,
/* 35984*/              OPC_CheckInteger, 0, 
/* 35986*/              OPC_MoveParent,
/* 35987*/              OPC_MoveChild, 8,
/* 35989*/              OPC_Scope, 24, /*->36015*/ // 2 children in Scope
/* 35991*/                OPC_CheckInteger, 0, 
/* 35993*/                OPC_MoveParent,
/* 35994*/                OPC_CheckType, MVT::v8i16,
/* 35996*/                OPC_EmitConvertToTarget, 2,
/* 35998*/                OPC_EmitInteger, MVT::i32, 0, 
/* 36001*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36004*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNbhs32), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VQSHRNbhs32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 36015*/              /*Scope*/ 24, /*->36040*/
/* 36016*/                OPC_CheckInteger, 1, 
/* 36018*/                OPC_MoveParent,
/* 36019*/                OPC_CheckType, MVT::v8i16,
/* 36021*/                OPC_EmitConvertToTarget, 2,
/* 36023*/                OPC_EmitInteger, MVT::i32, 0, 
/* 36026*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36029*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNths32), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VQSHRNths32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 36040*/              0, /*End of Scope*/
/* 36041*/            /*Scope*/ 122, /*->36164*/
/* 36042*/              OPC_CheckInteger, 1, 
/* 36044*/              OPC_MoveParent,
/* 36045*/              OPC_MoveChild7,
/* 36046*/              OPC_Scope, 57, /*->36105*/ // 2 children in Scope
/* 36048*/                OPC_CheckInteger, 1, 
/* 36050*/                OPC_MoveParent,
/* 36051*/                OPC_MoveChild, 8,
/* 36053*/                OPC_Scope, 24, /*->36079*/ // 2 children in Scope
/* 36055*/                  OPC_CheckInteger, 0, 
/* 36057*/                  OPC_MoveParent,
/* 36058*/                  OPC_CheckType, MVT::v8i16,
/* 36060*/                  OPC_EmitConvertToTarget, 2,
/* 36062*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 36065*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36068*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNbhu32), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQSHRNbhu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 36079*/                /*Scope*/ 24, /*->36104*/
/* 36080*/                  OPC_CheckInteger, 1, 
/* 36082*/                  OPC_MoveParent,
/* 36083*/                  OPC_CheckType, MVT::v8i16,
/* 36085*/                  OPC_EmitConvertToTarget, 2,
/* 36087*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 36090*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36093*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNthu32), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQSHRNthu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 36104*/                0, /*End of Scope*/
/* 36105*/              /*Scope*/ 57, /*->36163*/
/* 36106*/                OPC_CheckInteger, 0, 
/* 36108*/                OPC_MoveParent,
/* 36109*/                OPC_MoveChild, 8,
/* 36111*/                OPC_Scope, 24, /*->36137*/ // 2 children in Scope
/* 36113*/                  OPC_CheckInteger, 0, 
/* 36115*/                  OPC_MoveParent,
/* 36116*/                  OPC_CheckType, MVT::v8i16,
/* 36118*/                  OPC_EmitConvertToTarget, 2,
/* 36120*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 36123*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36126*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRUNs32bh), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQSHRUNs32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 36137*/                /*Scope*/ 24, /*->36162*/
/* 36138*/                  OPC_CheckInteger, 1, 
/* 36140*/                  OPC_MoveParent,
/* 36141*/                  OPC_CheckType, MVT::v8i16,
/* 36143*/                  OPC_EmitConvertToTarget, 2,
/* 36145*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 36148*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36151*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRUNs32th), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQSHRUNs32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 36162*/                0, /*End of Scope*/
/* 36163*/              0, /*End of Scope*/
/* 36164*/            0, /*End of Scope*/
/* 36165*/          /*Scope*/ 63|128,1/*191*/, /*->36358*/
/* 36167*/            OPC_CheckInteger, 1, 
/* 36169*/            OPC_MoveParent,
/* 36170*/            OPC_MoveChild6,
/* 36171*/            OPC_Scope, 61, /*->36234*/ // 2 children in Scope
/* 36173*/              OPC_CheckInteger, 0, 
/* 36175*/              OPC_MoveParent,
/* 36176*/              OPC_MoveChild7,
/* 36177*/              OPC_CheckInteger, 0, 
/* 36179*/              OPC_MoveParent,
/* 36180*/              OPC_MoveChild, 8,
/* 36182*/              OPC_Scope, 24, /*->36208*/ // 2 children in Scope
/* 36184*/                OPC_CheckInteger, 0, 
/* 36186*/                OPC_MoveParent,
/* 36187*/                OPC_CheckType, MVT::v8i16,
/* 36189*/                OPC_EmitConvertToTarget, 2,
/* 36191*/                OPC_EmitInteger, MVT::i32, 0, 
/* 36194*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36197*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNbhs32), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VQRSHRNbhs32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 36208*/              /*Scope*/ 24, /*->36233*/
/* 36209*/                OPC_CheckInteger, 1, 
/* 36211*/                OPC_MoveParent,
/* 36212*/                OPC_CheckType, MVT::v8i16,
/* 36214*/                OPC_EmitConvertToTarget, 2,
/* 36216*/                OPC_EmitInteger, MVT::i32, 0, 
/* 36219*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36222*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNths32), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                          // Dst: (MVE_VQRSHRNths32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 36233*/              0, /*End of Scope*/
/* 36234*/            /*Scope*/ 122, /*->36357*/
/* 36235*/              OPC_CheckInteger, 1, 
/* 36237*/              OPC_MoveParent,
/* 36238*/              OPC_MoveChild7,
/* 36239*/              OPC_Scope, 57, /*->36298*/ // 2 children in Scope
/* 36241*/                OPC_CheckInteger, 1, 
/* 36243*/                OPC_MoveParent,
/* 36244*/                OPC_MoveChild, 8,
/* 36246*/                OPC_Scope, 24, /*->36272*/ // 2 children in Scope
/* 36248*/                  OPC_CheckInteger, 0, 
/* 36250*/                  OPC_MoveParent,
/* 36251*/                  OPC_CheckType, MVT::v8i16,
/* 36253*/                  OPC_EmitConvertToTarget, 2,
/* 36255*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 36258*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36261*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNbhu32), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQRSHRNbhu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 36272*/                /*Scope*/ 24, /*->36297*/
/* 36273*/                  OPC_CheckInteger, 1, 
/* 36275*/                  OPC_MoveParent,
/* 36276*/                  OPC_CheckType, MVT::v8i16,
/* 36278*/                  OPC_EmitConvertToTarget, 2,
/* 36280*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 36283*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36286*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNthu32), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQRSHRNthu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 36297*/                0, /*End of Scope*/
/* 36298*/              /*Scope*/ 57, /*->36356*/
/* 36299*/                OPC_CheckInteger, 0, 
/* 36301*/                OPC_MoveParent,
/* 36302*/                OPC_MoveChild, 8,
/* 36304*/                OPC_Scope, 24, /*->36330*/ // 2 children in Scope
/* 36306*/                  OPC_CheckInteger, 0, 
/* 36308*/                  OPC_MoveParent,
/* 36309*/                  OPC_CheckType, MVT::v8i16,
/* 36311*/                  OPC_EmitConvertToTarget, 2,
/* 36313*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 36316*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36319*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRUNs32bh), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQRSHRUNs32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 36330*/                /*Scope*/ 24, /*->36355*/
/* 36331*/                  OPC_CheckInteger, 1, 
/* 36333*/                  OPC_MoveParent,
/* 36334*/                  OPC_CheckType, MVT::v8i16,
/* 36336*/                  OPC_EmitConvertToTarget, 2,
/* 36338*/                  OPC_EmitInteger, MVT::i32, 0, 
/* 36341*/                  OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 36344*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRUNs32th), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1632:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 37
                            // Dst: (MVE_VQRSHRUNs32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm)
/* 36355*/                0, /*End of Scope*/
/* 36356*/              0, /*End of Scope*/
/* 36357*/            0, /*End of Scope*/
/* 36358*/          0, /*End of Scope*/
/* 36359*/        0, /*End of Scope*/
/* 36360*/      0, /*End of Scope*/
/* 36361*/    /*Scope*/ 84|128,11/*1492*/, /*->37855*/
/* 36363*/      OPC_CheckChild0Integer, 97|128,12/*1633*/, 
/* 36366*/      OPC_RecordChild1, // #0 = $QdSrc
/* 36367*/      OPC_Scope, 101|128,5/*741*/, /*->37111*/ // 2 children in Scope
/* 36370*/        OPC_CheckChild1Type, MVT::v16i8,
/* 36372*/        OPC_RecordChild2, // #1 = $Qm
/* 36373*/        OPC_CheckChild2Type, MVT::v8i16,
/* 36375*/        OPC_RecordChild3, // #2 = $imm
/* 36376*/        OPC_MoveChild3,
/* 36377*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 36380*/        OPC_CheckPredicate, 34, // Predicate_shr_imm8
/* 36382*/        OPC_MoveParent,
/* 36383*/        OPC_Scope, 37|128,2/*293*/, /*->36679*/ // 2 children in Scope
/* 36386*/          OPC_CheckChild4Integer, 0, 
/* 36388*/          OPC_MoveChild5,
/* 36389*/          OPC_Scope, 14|128,1/*142*/, /*->36534*/ // 2 children in Scope
/* 36392*/            OPC_CheckInteger, 0, 
/* 36394*/            OPC_MoveParent,
/* 36395*/            OPC_MoveChild6,
/* 36396*/            OPC_Scope, 67, /*->36465*/ // 2 children in Scope
/* 36398*/              OPC_CheckInteger, 0, 
/* 36400*/              OPC_MoveParent,
/* 36401*/              OPC_MoveChild7,
/* 36402*/              OPC_CheckInteger, 0, 
/* 36404*/              OPC_MoveParent,
/* 36405*/              OPC_MoveChild, 8,
/* 36407*/              OPC_Scope, 27, /*->36436*/ // 2 children in Scope
/* 36409*/                OPC_CheckInteger, 0, 
/* 36411*/                OPC_MoveParent,
/* 36412*/                OPC_MoveChild, 9,
/* 36414*/                OPC_RecordNode, // #3 = $pred
/* 36415*/                OPC_CheckType, MVT::v8i1,
/* 36417*/                OPC_MoveParent,
/* 36418*/                OPC_CheckType, MVT::v16i8,
/* 36420*/                OPC_EmitConvertToTarget, 2,
/* 36422*/                OPC_EmitInteger, MVT::i32, 1, 
/* 36425*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi16bh), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36436*/              /*Scope*/ 27, /*->36464*/
/* 36437*/                OPC_CheckInteger, 1, 
/* 36439*/                OPC_MoveParent,
/* 36440*/                OPC_MoveChild, 9,
/* 36442*/                OPC_RecordNode, // #3 = $pred
/* 36443*/                OPC_CheckType, MVT::v8i1,
/* 36445*/                OPC_MoveParent,
/* 36446*/                OPC_CheckType, MVT::v16i8,
/* 36448*/                OPC_EmitConvertToTarget, 2,
/* 36450*/                OPC_EmitInteger, MVT::i32, 1, 
/* 36453*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi16th), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36464*/              0, /*End of Scope*/
/* 36465*/            /*Scope*/ 67, /*->36533*/
/* 36466*/              OPC_CheckInteger, 1, 
/* 36468*/              OPC_MoveParent,
/* 36469*/              OPC_MoveChild7,
/* 36470*/              OPC_CheckInteger, 1, 
/* 36472*/              OPC_MoveParent,
/* 36473*/              OPC_MoveChild, 8,
/* 36475*/              OPC_Scope, 27, /*->36504*/ // 2 children in Scope
/* 36477*/                OPC_CheckInteger, 0, 
/* 36479*/                OPC_MoveParent,
/* 36480*/                OPC_MoveChild, 9,
/* 36482*/                OPC_RecordNode, // #3 = $pred
/* 36483*/                OPC_CheckType, MVT::v8i1,
/* 36485*/                OPC_MoveParent,
/* 36486*/                OPC_CheckType, MVT::v16i8,
/* 36488*/                OPC_EmitConvertToTarget, 2,
/* 36490*/                OPC_EmitInteger, MVT::i32, 1, 
/* 36493*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi16bh), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36504*/              /*Scope*/ 27, /*->36532*/
/* 36505*/                OPC_CheckInteger, 1, 
/* 36507*/                OPC_MoveParent,
/* 36508*/                OPC_MoveChild, 9,
/* 36510*/                OPC_RecordNode, // #3 = $pred
/* 36511*/                OPC_CheckType, MVT::v8i1,
/* 36513*/                OPC_MoveParent,
/* 36514*/                OPC_CheckType, MVT::v16i8,
/* 36516*/                OPC_EmitConvertToTarget, 2,
/* 36518*/                OPC_EmitInteger, MVT::i32, 1, 
/* 36521*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi16th), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36532*/              0, /*End of Scope*/
/* 36533*/            0, /*End of Scope*/
/* 36534*/          /*Scope*/ 14|128,1/*142*/, /*->36678*/
/* 36536*/            OPC_CheckInteger, 1, 
/* 36538*/            OPC_MoveParent,
/* 36539*/            OPC_MoveChild6,
/* 36540*/            OPC_Scope, 67, /*->36609*/ // 2 children in Scope
/* 36542*/              OPC_CheckInteger, 0, 
/* 36544*/              OPC_MoveParent,
/* 36545*/              OPC_MoveChild7,
/* 36546*/              OPC_CheckInteger, 0, 
/* 36548*/              OPC_MoveParent,
/* 36549*/              OPC_MoveChild, 8,
/* 36551*/              OPC_Scope, 27, /*->36580*/ // 2 children in Scope
/* 36553*/                OPC_CheckInteger, 0, 
/* 36555*/                OPC_MoveParent,
/* 36556*/                OPC_MoveChild, 9,
/* 36558*/                OPC_RecordNode, // #3 = $pred
/* 36559*/                OPC_CheckType, MVT::v8i1,
/* 36561*/                OPC_MoveParent,
/* 36562*/                OPC_CheckType, MVT::v16i8,
/* 36564*/                OPC_EmitConvertToTarget, 2,
/* 36566*/                OPC_EmitInteger, MVT::i32, 1, 
/* 36569*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi16bh), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VRSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36580*/              /*Scope*/ 27, /*->36608*/
/* 36581*/                OPC_CheckInteger, 1, 
/* 36583*/                OPC_MoveParent,
/* 36584*/                OPC_MoveChild, 9,
/* 36586*/                OPC_RecordNode, // #3 = $pred
/* 36587*/                OPC_CheckType, MVT::v8i1,
/* 36589*/                OPC_MoveParent,
/* 36590*/                OPC_CheckType, MVT::v16i8,
/* 36592*/                OPC_EmitConvertToTarget, 2,
/* 36594*/                OPC_EmitInteger, MVT::i32, 1, 
/* 36597*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi16th), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VRSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36608*/              0, /*End of Scope*/
/* 36609*/            /*Scope*/ 67, /*->36677*/
/* 36610*/              OPC_CheckInteger, 1, 
/* 36612*/              OPC_MoveParent,
/* 36613*/              OPC_MoveChild7,
/* 36614*/              OPC_CheckInteger, 1, 
/* 36616*/              OPC_MoveParent,
/* 36617*/              OPC_MoveChild, 8,
/* 36619*/              OPC_Scope, 27, /*->36648*/ // 2 children in Scope
/* 36621*/                OPC_CheckInteger, 0, 
/* 36623*/                OPC_MoveParent,
/* 36624*/                OPC_MoveChild, 9,
/* 36626*/                OPC_RecordNode, // #3 = $pred
/* 36627*/                OPC_CheckType, MVT::v8i1,
/* 36629*/                OPC_MoveParent,
/* 36630*/                OPC_CheckType, MVT::v16i8,
/* 36632*/                OPC_EmitConvertToTarget, 2,
/* 36634*/                OPC_EmitInteger, MVT::i32, 1, 
/* 36637*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi16bh), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VRSHRNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36648*/              /*Scope*/ 27, /*->36676*/
/* 36649*/                OPC_CheckInteger, 1, 
/* 36651*/                OPC_MoveParent,
/* 36652*/                OPC_MoveChild, 9,
/* 36654*/                OPC_RecordNode, // #3 = $pred
/* 36655*/                OPC_CheckType, MVT::v8i1,
/* 36657*/                OPC_MoveParent,
/* 36658*/                OPC_CheckType, MVT::v16i8,
/* 36660*/                OPC_EmitConvertToTarget, 2,
/* 36662*/                OPC_EmitInteger, MVT::i32, 1, 
/* 36665*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi16th), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VRSHRNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36676*/              0, /*End of Scope*/
/* 36677*/            0, /*End of Scope*/
/* 36678*/          0, /*End of Scope*/
/* 36679*/        /*Scope*/ 45|128,3/*429*/, /*->37110*/
/* 36681*/          OPC_CheckChild4Integer, 1, 
/* 36683*/          OPC_MoveChild5,
/* 36684*/          OPC_Scope, 82|128,1/*210*/, /*->36897*/ // 2 children in Scope
/* 36687*/            OPC_CheckInteger, 0, 
/* 36689*/            OPC_MoveParent,
/* 36690*/            OPC_MoveChild6,
/* 36691*/            OPC_Scope, 67, /*->36760*/ // 2 children in Scope
/* 36693*/              OPC_CheckInteger, 0, 
/* 36695*/              OPC_MoveParent,
/* 36696*/              OPC_MoveChild7,
/* 36697*/              OPC_CheckInteger, 0, 
/* 36699*/              OPC_MoveParent,
/* 36700*/              OPC_MoveChild, 8,
/* 36702*/              OPC_Scope, 27, /*->36731*/ // 2 children in Scope
/* 36704*/                OPC_CheckInteger, 0, 
/* 36706*/                OPC_MoveParent,
/* 36707*/                OPC_MoveChild, 9,
/* 36709*/                OPC_RecordNode, // #3 = $pred
/* 36710*/                OPC_CheckType, MVT::v8i1,
/* 36712*/                OPC_MoveParent,
/* 36713*/                OPC_CheckType, MVT::v16i8,
/* 36715*/                OPC_EmitConvertToTarget, 2,
/* 36717*/                OPC_EmitInteger, MVT::i32, 1, 
/* 36720*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNbhs16), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VQSHRNbhs16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36731*/              /*Scope*/ 27, /*->36759*/
/* 36732*/                OPC_CheckInteger, 1, 
/* 36734*/                OPC_MoveParent,
/* 36735*/                OPC_MoveChild, 9,
/* 36737*/                OPC_RecordNode, // #3 = $pred
/* 36738*/                OPC_CheckType, MVT::v8i1,
/* 36740*/                OPC_MoveParent,
/* 36741*/                OPC_CheckType, MVT::v16i8,
/* 36743*/                OPC_EmitConvertToTarget, 2,
/* 36745*/                OPC_EmitInteger, MVT::i32, 1, 
/* 36748*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNths16), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VQSHRNths16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36759*/              0, /*End of Scope*/
/* 36760*/            /*Scope*/ 6|128,1/*134*/, /*->36896*/
/* 36762*/              OPC_CheckInteger, 1, 
/* 36764*/              OPC_MoveParent,
/* 36765*/              OPC_MoveChild7,
/* 36766*/              OPC_Scope, 63, /*->36831*/ // 2 children in Scope
/* 36768*/                OPC_CheckInteger, 1, 
/* 36770*/                OPC_MoveParent,
/* 36771*/                OPC_MoveChild, 8,
/* 36773*/                OPC_Scope, 27, /*->36802*/ // 2 children in Scope
/* 36775*/                  OPC_CheckInteger, 0, 
/* 36777*/                  OPC_MoveParent,
/* 36778*/                  OPC_MoveChild, 9,
/* 36780*/                  OPC_RecordNode, // #3 = $pred
/* 36781*/                  OPC_CheckType, MVT::v8i1,
/* 36783*/                  OPC_MoveParent,
/* 36784*/                  OPC_CheckType, MVT::v16i8,
/* 36786*/                  OPC_EmitConvertToTarget, 2,
/* 36788*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 36791*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNbhu16), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQSHRNbhu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36802*/                /*Scope*/ 27, /*->36830*/
/* 36803*/                  OPC_CheckInteger, 1, 
/* 36805*/                  OPC_MoveParent,
/* 36806*/                  OPC_MoveChild, 9,
/* 36808*/                  OPC_RecordNode, // #3 = $pred
/* 36809*/                  OPC_CheckType, MVT::v8i1,
/* 36811*/                  OPC_MoveParent,
/* 36812*/                  OPC_CheckType, MVT::v16i8,
/* 36814*/                  OPC_EmitConvertToTarget, 2,
/* 36816*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 36819*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNthu16), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQSHRNthu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36830*/                0, /*End of Scope*/
/* 36831*/              /*Scope*/ 63, /*->36895*/
/* 36832*/                OPC_CheckInteger, 0, 
/* 36834*/                OPC_MoveParent,
/* 36835*/                OPC_MoveChild, 8,
/* 36837*/                OPC_Scope, 27, /*->36866*/ // 2 children in Scope
/* 36839*/                  OPC_CheckInteger, 0, 
/* 36841*/                  OPC_MoveParent,
/* 36842*/                  OPC_MoveChild, 9,
/* 36844*/                  OPC_RecordNode, // #3 = $pred
/* 36845*/                  OPC_CheckType, MVT::v8i1,
/* 36847*/                  OPC_MoveParent,
/* 36848*/                  OPC_CheckType, MVT::v16i8,
/* 36850*/                  OPC_EmitConvertToTarget, 2,
/* 36852*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 36855*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRUNs16bh), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQSHRUNs16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36866*/                /*Scope*/ 27, /*->36894*/
/* 36867*/                  OPC_CheckInteger, 1, 
/* 36869*/                  OPC_MoveParent,
/* 36870*/                  OPC_MoveChild, 9,
/* 36872*/                  OPC_RecordNode, // #3 = $pred
/* 36873*/                  OPC_CheckType, MVT::v8i1,
/* 36875*/                  OPC_MoveParent,
/* 36876*/                  OPC_CheckType, MVT::v16i8,
/* 36878*/                  OPC_EmitConvertToTarget, 2,
/* 36880*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 36883*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRUNs16th), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQSHRUNs16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36894*/                0, /*End of Scope*/
/* 36895*/              0, /*End of Scope*/
/* 36896*/            0, /*End of Scope*/
/* 36897*/          /*Scope*/ 82|128,1/*210*/, /*->37109*/
/* 36899*/            OPC_CheckInteger, 1, 
/* 36901*/            OPC_MoveParent,
/* 36902*/            OPC_MoveChild6,
/* 36903*/            OPC_Scope, 67, /*->36972*/ // 2 children in Scope
/* 36905*/              OPC_CheckInteger, 0, 
/* 36907*/              OPC_MoveParent,
/* 36908*/              OPC_MoveChild7,
/* 36909*/              OPC_CheckInteger, 0, 
/* 36911*/              OPC_MoveParent,
/* 36912*/              OPC_MoveChild, 8,
/* 36914*/              OPC_Scope, 27, /*->36943*/ // 2 children in Scope
/* 36916*/                OPC_CheckInteger, 0, 
/* 36918*/                OPC_MoveParent,
/* 36919*/                OPC_MoveChild, 9,
/* 36921*/                OPC_RecordNode, // #3 = $pred
/* 36922*/                OPC_CheckType, MVT::v8i1,
/* 36924*/                OPC_MoveParent,
/* 36925*/                OPC_CheckType, MVT::v16i8,
/* 36927*/                OPC_EmitConvertToTarget, 2,
/* 36929*/                OPC_EmitInteger, MVT::i32, 1, 
/* 36932*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNbhs16), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VQRSHRNbhs16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36943*/              /*Scope*/ 27, /*->36971*/
/* 36944*/                OPC_CheckInteger, 1, 
/* 36946*/                OPC_MoveParent,
/* 36947*/                OPC_MoveChild, 9,
/* 36949*/                OPC_RecordNode, // #3 = $pred
/* 36950*/                OPC_CheckType, MVT::v8i1,
/* 36952*/                OPC_MoveParent,
/* 36953*/                OPC_CheckType, MVT::v16i8,
/* 36955*/                OPC_EmitConvertToTarget, 2,
/* 36957*/                OPC_EmitInteger, MVT::i32, 1, 
/* 36960*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNths16), 0,
                              MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VQRSHRNths16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 36971*/              0, /*End of Scope*/
/* 36972*/            /*Scope*/ 6|128,1/*134*/, /*->37108*/
/* 36974*/              OPC_CheckInteger, 1, 
/* 36976*/              OPC_MoveParent,
/* 36977*/              OPC_MoveChild7,
/* 36978*/              OPC_Scope, 63, /*->37043*/ // 2 children in Scope
/* 36980*/                OPC_CheckInteger, 1, 
/* 36982*/                OPC_MoveParent,
/* 36983*/                OPC_MoveChild, 8,
/* 36985*/                OPC_Scope, 27, /*->37014*/ // 2 children in Scope
/* 36987*/                  OPC_CheckInteger, 0, 
/* 36989*/                  OPC_MoveParent,
/* 36990*/                  OPC_MoveChild, 9,
/* 36992*/                  OPC_RecordNode, // #3 = $pred
/* 36993*/                  OPC_CheckType, MVT::v8i1,
/* 36995*/                  OPC_MoveParent,
/* 36996*/                  OPC_CheckType, MVT::v16i8,
/* 36998*/                  OPC_EmitConvertToTarget, 2,
/* 37000*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 37003*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNbhu16), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQRSHRNbhu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 37014*/                /*Scope*/ 27, /*->37042*/
/* 37015*/                  OPC_CheckInteger, 1, 
/* 37017*/                  OPC_MoveParent,
/* 37018*/                  OPC_MoveChild, 9,
/* 37020*/                  OPC_RecordNode, // #3 = $pred
/* 37021*/                  OPC_CheckType, MVT::v8i1,
/* 37023*/                  OPC_MoveParent,
/* 37024*/                  OPC_CheckType, MVT::v16i8,
/* 37026*/                  OPC_EmitConvertToTarget, 2,
/* 37028*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 37031*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNthu16), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQRSHRNthu16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 37042*/                0, /*End of Scope*/
/* 37043*/              /*Scope*/ 63, /*->37107*/
/* 37044*/                OPC_CheckInteger, 0, 
/* 37046*/                OPC_MoveParent,
/* 37047*/                OPC_MoveChild, 8,
/* 37049*/                OPC_Scope, 27, /*->37078*/ // 2 children in Scope
/* 37051*/                  OPC_CheckInteger, 0, 
/* 37053*/                  OPC_MoveParent,
/* 37054*/                  OPC_MoveChild, 9,
/* 37056*/                  OPC_RecordNode, // #3 = $pred
/* 37057*/                  OPC_CheckType, MVT::v8i1,
/* 37059*/                  OPC_MoveParent,
/* 37060*/                  OPC_CheckType, MVT::v16i8,
/* 37062*/                  OPC_EmitConvertToTarget, 2,
/* 37064*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 37067*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRUNs16bh), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQRSHRUNs16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 37078*/                /*Scope*/ 27, /*->37106*/
/* 37079*/                  OPC_CheckInteger, 1, 
/* 37081*/                  OPC_MoveParent,
/* 37082*/                  OPC_MoveChild, 9,
/* 37084*/                  OPC_RecordNode, // #3 = $pred
/* 37085*/                  OPC_CheckType, MVT::v8i1,
/* 37087*/                  OPC_MoveParent,
/* 37088*/                  OPC_CheckType, MVT::v16i8,
/* 37090*/                  OPC_EmitConvertToTarget, 2,
/* 37092*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 37095*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRUNs16th), 0,
                                MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1633:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQRSHRUNs16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 37106*/                0, /*End of Scope*/
/* 37107*/              0, /*End of Scope*/
/* 37108*/            0, /*End of Scope*/
/* 37109*/          0, /*End of Scope*/
/* 37110*/        0, /*End of Scope*/
/* 37111*/      /*Scope*/ 101|128,5/*741*/, /*->37854*/
/* 37113*/        OPC_CheckChild1Type, MVT::v8i16,
/* 37115*/        OPC_RecordChild2, // #1 = $Qm
/* 37116*/        OPC_CheckChild2Type, MVT::v4i32,
/* 37118*/        OPC_RecordChild3, // #2 = $imm
/* 37119*/        OPC_MoveChild3,
/* 37120*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 37123*/        OPC_CheckPredicate, 35, // Predicate_shr_imm16
/* 37125*/        OPC_MoveParent,
/* 37126*/        OPC_Scope, 37|128,2/*293*/, /*->37422*/ // 2 children in Scope
/* 37129*/          OPC_CheckChild4Integer, 0, 
/* 37131*/          OPC_MoveChild5,
/* 37132*/          OPC_Scope, 14|128,1/*142*/, /*->37277*/ // 2 children in Scope
/* 37135*/            OPC_CheckInteger, 0, 
/* 37137*/            OPC_MoveParent,
/* 37138*/            OPC_MoveChild6,
/* 37139*/            OPC_Scope, 67, /*->37208*/ // 2 children in Scope
/* 37141*/              OPC_CheckInteger, 0, 
/* 37143*/              OPC_MoveParent,
/* 37144*/              OPC_MoveChild7,
/* 37145*/              OPC_CheckInteger, 0, 
/* 37147*/              OPC_MoveParent,
/* 37148*/              OPC_MoveChild, 8,
/* 37150*/              OPC_Scope, 27, /*->37179*/ // 2 children in Scope
/* 37152*/                OPC_CheckInteger, 0, 
/* 37154*/                OPC_MoveParent,
/* 37155*/                OPC_MoveChild, 9,
/* 37157*/                OPC_RecordNode, // #3 = $pred
/* 37158*/                OPC_CheckType, MVT::v4i1,
/* 37160*/                OPC_MoveParent,
/* 37161*/                OPC_CheckType, MVT::v8i16,
/* 37163*/                OPC_EmitConvertToTarget, 2,
/* 37165*/                OPC_EmitInteger, MVT::i32, 1, 
/* 37168*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi32bh), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37179*/              /*Scope*/ 27, /*->37207*/
/* 37180*/                OPC_CheckInteger, 1, 
/* 37182*/                OPC_MoveParent,
/* 37183*/                OPC_MoveChild, 9,
/* 37185*/                OPC_RecordNode, // #3 = $pred
/* 37186*/                OPC_CheckType, MVT::v4i1,
/* 37188*/                OPC_MoveParent,
/* 37189*/                OPC_CheckType, MVT::v8i16,
/* 37191*/                OPC_EmitConvertToTarget, 2,
/* 37193*/                OPC_EmitInteger, MVT::i32, 1, 
/* 37196*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi32th), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37207*/              0, /*End of Scope*/
/* 37208*/            /*Scope*/ 67, /*->37276*/
/* 37209*/              OPC_CheckInteger, 1, 
/* 37211*/              OPC_MoveParent,
/* 37212*/              OPC_MoveChild7,
/* 37213*/              OPC_CheckInteger, 1, 
/* 37215*/              OPC_MoveParent,
/* 37216*/              OPC_MoveChild, 8,
/* 37218*/              OPC_Scope, 27, /*->37247*/ // 2 children in Scope
/* 37220*/                OPC_CheckInteger, 0, 
/* 37222*/                OPC_MoveParent,
/* 37223*/                OPC_MoveChild, 9,
/* 37225*/                OPC_RecordNode, // #3 = $pred
/* 37226*/                OPC_CheckType, MVT::v4i1,
/* 37228*/                OPC_MoveParent,
/* 37229*/                OPC_CheckType, MVT::v8i16,
/* 37231*/                OPC_EmitConvertToTarget, 2,
/* 37233*/                OPC_EmitInteger, MVT::i32, 1, 
/* 37236*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi32bh), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37247*/              /*Scope*/ 27, /*->37275*/
/* 37248*/                OPC_CheckInteger, 1, 
/* 37250*/                OPC_MoveParent,
/* 37251*/                OPC_MoveChild, 9,
/* 37253*/                OPC_RecordNode, // #3 = $pred
/* 37254*/                OPC_CheckType, MVT::v4i1,
/* 37256*/                OPC_MoveParent,
/* 37257*/                OPC_CheckType, MVT::v8i16,
/* 37259*/                OPC_EmitConvertToTarget, 2,
/* 37261*/                OPC_EmitInteger, MVT::i32, 1, 
/* 37264*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHRNi32th), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37275*/              0, /*End of Scope*/
/* 37276*/            0, /*End of Scope*/
/* 37277*/          /*Scope*/ 14|128,1/*142*/, /*->37421*/
/* 37279*/            OPC_CheckInteger, 1, 
/* 37281*/            OPC_MoveParent,
/* 37282*/            OPC_MoveChild6,
/* 37283*/            OPC_Scope, 67, /*->37352*/ // 2 children in Scope
/* 37285*/              OPC_CheckInteger, 0, 
/* 37287*/              OPC_MoveParent,
/* 37288*/              OPC_MoveChild7,
/* 37289*/              OPC_CheckInteger, 0, 
/* 37291*/              OPC_MoveParent,
/* 37292*/              OPC_MoveChild, 8,
/* 37294*/              OPC_Scope, 27, /*->37323*/ // 2 children in Scope
/* 37296*/                OPC_CheckInteger, 0, 
/* 37298*/                OPC_MoveParent,
/* 37299*/                OPC_MoveChild, 9,
/* 37301*/                OPC_RecordNode, // #3 = $pred
/* 37302*/                OPC_CheckType, MVT::v4i1,
/* 37304*/                OPC_MoveParent,
/* 37305*/                OPC_CheckType, MVT::v8i16,
/* 37307*/                OPC_EmitConvertToTarget, 2,
/* 37309*/                OPC_EmitInteger, MVT::i32, 1, 
/* 37312*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi32bh), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VRSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37323*/              /*Scope*/ 27, /*->37351*/
/* 37324*/                OPC_CheckInteger, 1, 
/* 37326*/                OPC_MoveParent,
/* 37327*/                OPC_MoveChild, 9,
/* 37329*/                OPC_RecordNode, // #3 = $pred
/* 37330*/                OPC_CheckType, MVT::v4i1,
/* 37332*/                OPC_MoveParent,
/* 37333*/                OPC_CheckType, MVT::v8i16,
/* 37335*/                OPC_EmitConvertToTarget, 2,
/* 37337*/                OPC_EmitInteger, MVT::i32, 1, 
/* 37340*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi32th), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VRSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37351*/              0, /*End of Scope*/
/* 37352*/            /*Scope*/ 67, /*->37420*/
/* 37353*/              OPC_CheckInteger, 1, 
/* 37355*/              OPC_MoveParent,
/* 37356*/              OPC_MoveChild7,
/* 37357*/              OPC_CheckInteger, 1, 
/* 37359*/              OPC_MoveParent,
/* 37360*/              OPC_MoveChild, 8,
/* 37362*/              OPC_Scope, 27, /*->37391*/ // 2 children in Scope
/* 37364*/                OPC_CheckInteger, 0, 
/* 37366*/                OPC_MoveParent,
/* 37367*/                OPC_MoveChild, 9,
/* 37369*/                OPC_RecordNode, // #3 = $pred
/* 37370*/                OPC_CheckType, MVT::v4i1,
/* 37372*/                OPC_MoveParent,
/* 37373*/                OPC_CheckType, MVT::v8i16,
/* 37375*/                OPC_EmitConvertToTarget, 2,
/* 37377*/                OPC_EmitInteger, MVT::i32, 1, 
/* 37380*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi32bh), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VRSHRNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37391*/              /*Scope*/ 27, /*->37419*/
/* 37392*/                OPC_CheckInteger, 1, 
/* 37394*/                OPC_MoveParent,
/* 37395*/                OPC_MoveChild, 9,
/* 37397*/                OPC_RecordNode, // #3 = $pred
/* 37398*/                OPC_CheckType, MVT::v4i1,
/* 37400*/                OPC_MoveParent,
/* 37401*/                OPC_CheckType, MVT::v8i16,
/* 37403*/                OPC_EmitConvertToTarget, 2,
/* 37405*/                OPC_EmitInteger, MVT::i32, 1, 
/* 37408*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHRNi32th), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VRSHRNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37419*/              0, /*End of Scope*/
/* 37420*/            0, /*End of Scope*/
/* 37421*/          0, /*End of Scope*/
/* 37422*/        /*Scope*/ 45|128,3/*429*/, /*->37853*/
/* 37424*/          OPC_CheckChild4Integer, 1, 
/* 37426*/          OPC_MoveChild5,
/* 37427*/          OPC_Scope, 82|128,1/*210*/, /*->37640*/ // 2 children in Scope
/* 37430*/            OPC_CheckInteger, 0, 
/* 37432*/            OPC_MoveParent,
/* 37433*/            OPC_MoveChild6,
/* 37434*/            OPC_Scope, 67, /*->37503*/ // 2 children in Scope
/* 37436*/              OPC_CheckInteger, 0, 
/* 37438*/              OPC_MoveParent,
/* 37439*/              OPC_MoveChild7,
/* 37440*/              OPC_CheckInteger, 0, 
/* 37442*/              OPC_MoveParent,
/* 37443*/              OPC_MoveChild, 8,
/* 37445*/              OPC_Scope, 27, /*->37474*/ // 2 children in Scope
/* 37447*/                OPC_CheckInteger, 0, 
/* 37449*/                OPC_MoveParent,
/* 37450*/                OPC_MoveChild, 9,
/* 37452*/                OPC_RecordNode, // #3 = $pred
/* 37453*/                OPC_CheckType, MVT::v4i1,
/* 37455*/                OPC_MoveParent,
/* 37456*/                OPC_CheckType, MVT::v8i16,
/* 37458*/                OPC_EmitConvertToTarget, 2,
/* 37460*/                OPC_EmitInteger, MVT::i32, 1, 
/* 37463*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNbhs32), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VQSHRNbhs32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37474*/              /*Scope*/ 27, /*->37502*/
/* 37475*/                OPC_CheckInteger, 1, 
/* 37477*/                OPC_MoveParent,
/* 37478*/                OPC_MoveChild, 9,
/* 37480*/                OPC_RecordNode, // #3 = $pred
/* 37481*/                OPC_CheckType, MVT::v4i1,
/* 37483*/                OPC_MoveParent,
/* 37484*/                OPC_CheckType, MVT::v8i16,
/* 37486*/                OPC_EmitConvertToTarget, 2,
/* 37488*/                OPC_EmitInteger, MVT::i32, 1, 
/* 37491*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNths32), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VQSHRNths32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37502*/              0, /*End of Scope*/
/* 37503*/            /*Scope*/ 6|128,1/*134*/, /*->37639*/
/* 37505*/              OPC_CheckInteger, 1, 
/* 37507*/              OPC_MoveParent,
/* 37508*/              OPC_MoveChild7,
/* 37509*/              OPC_Scope, 63, /*->37574*/ // 2 children in Scope
/* 37511*/                OPC_CheckInteger, 1, 
/* 37513*/                OPC_MoveParent,
/* 37514*/                OPC_MoveChild, 8,
/* 37516*/                OPC_Scope, 27, /*->37545*/ // 2 children in Scope
/* 37518*/                  OPC_CheckInteger, 0, 
/* 37520*/                  OPC_MoveParent,
/* 37521*/                  OPC_MoveChild, 9,
/* 37523*/                  OPC_RecordNode, // #3 = $pred
/* 37524*/                  OPC_CheckType, MVT::v4i1,
/* 37526*/                  OPC_MoveParent,
/* 37527*/                  OPC_CheckType, MVT::v8i16,
/* 37529*/                  OPC_EmitConvertToTarget, 2,
/* 37531*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 37534*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNbhu32), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQSHRNbhu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37545*/                /*Scope*/ 27, /*->37573*/
/* 37546*/                  OPC_CheckInteger, 1, 
/* 37548*/                  OPC_MoveParent,
/* 37549*/                  OPC_MoveChild, 9,
/* 37551*/                  OPC_RecordNode, // #3 = $pred
/* 37552*/                  OPC_CheckType, MVT::v4i1,
/* 37554*/                  OPC_MoveParent,
/* 37555*/                  OPC_CheckType, MVT::v8i16,
/* 37557*/                  OPC_EmitConvertToTarget, 2,
/* 37559*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 37562*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRNthu32), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQSHRNthu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37573*/                0, /*End of Scope*/
/* 37574*/              /*Scope*/ 63, /*->37638*/
/* 37575*/                OPC_CheckInteger, 0, 
/* 37577*/                OPC_MoveParent,
/* 37578*/                OPC_MoveChild, 8,
/* 37580*/                OPC_Scope, 27, /*->37609*/ // 2 children in Scope
/* 37582*/                  OPC_CheckInteger, 0, 
/* 37584*/                  OPC_MoveParent,
/* 37585*/                  OPC_MoveChild, 9,
/* 37587*/                  OPC_RecordNode, // #3 = $pred
/* 37588*/                  OPC_CheckType, MVT::v4i1,
/* 37590*/                  OPC_MoveParent,
/* 37591*/                  OPC_CheckType, MVT::v8i16,
/* 37593*/                  OPC_EmitConvertToTarget, 2,
/* 37595*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 37598*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRUNs32bh), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQSHRUNs32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37609*/                /*Scope*/ 27, /*->37637*/
/* 37610*/                  OPC_CheckInteger, 1, 
/* 37612*/                  OPC_MoveParent,
/* 37613*/                  OPC_MoveChild, 9,
/* 37615*/                  OPC_RecordNode, // #3 = $pred
/* 37616*/                  OPC_CheckType, MVT::v4i1,
/* 37618*/                  OPC_MoveParent,
/* 37619*/                  OPC_CheckType, MVT::v8i16,
/* 37621*/                  OPC_EmitConvertToTarget, 2,
/* 37623*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 37626*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHRUNs32th), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQSHRUNs32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37637*/                0, /*End of Scope*/
/* 37638*/              0, /*End of Scope*/
/* 37639*/            0, /*End of Scope*/
/* 37640*/          /*Scope*/ 82|128,1/*210*/, /*->37852*/
/* 37642*/            OPC_CheckInteger, 1, 
/* 37644*/            OPC_MoveParent,
/* 37645*/            OPC_MoveChild6,
/* 37646*/            OPC_Scope, 67, /*->37715*/ // 2 children in Scope
/* 37648*/              OPC_CheckInteger, 0, 
/* 37650*/              OPC_MoveParent,
/* 37651*/              OPC_MoveChild7,
/* 37652*/              OPC_CheckInteger, 0, 
/* 37654*/              OPC_MoveParent,
/* 37655*/              OPC_MoveChild, 8,
/* 37657*/              OPC_Scope, 27, /*->37686*/ // 2 children in Scope
/* 37659*/                OPC_CheckInteger, 0, 
/* 37661*/                OPC_MoveParent,
/* 37662*/                OPC_MoveChild, 9,
/* 37664*/                OPC_RecordNode, // #3 = $pred
/* 37665*/                OPC_CheckType, MVT::v4i1,
/* 37667*/                OPC_MoveParent,
/* 37668*/                OPC_CheckType, MVT::v8i16,
/* 37670*/                OPC_EmitConvertToTarget, 2,
/* 37672*/                OPC_EmitInteger, MVT::i32, 1, 
/* 37675*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNbhs32), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VQRSHRNbhs32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37686*/              /*Scope*/ 27, /*->37714*/
/* 37687*/                OPC_CheckInteger, 1, 
/* 37689*/                OPC_MoveParent,
/* 37690*/                OPC_MoveChild, 9,
/* 37692*/                OPC_RecordNode, // #3 = $pred
/* 37693*/                OPC_CheckType, MVT::v4i1,
/* 37695*/                OPC_MoveParent,
/* 37696*/                OPC_CheckType, MVT::v8i16,
/* 37698*/                OPC_EmitConvertToTarget, 2,
/* 37700*/                OPC_EmitInteger, MVT::i32, 1, 
/* 37703*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNths32), 0,
                              MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                          // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                          // Dst: (MVE_VQRSHRNths32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37714*/              0, /*End of Scope*/
/* 37715*/            /*Scope*/ 6|128,1/*134*/, /*->37851*/
/* 37717*/              OPC_CheckInteger, 1, 
/* 37719*/              OPC_MoveParent,
/* 37720*/              OPC_MoveChild7,
/* 37721*/              OPC_Scope, 63, /*->37786*/ // 2 children in Scope
/* 37723*/                OPC_CheckInteger, 1, 
/* 37725*/                OPC_MoveParent,
/* 37726*/                OPC_MoveChild, 8,
/* 37728*/                OPC_Scope, 27, /*->37757*/ // 2 children in Scope
/* 37730*/                  OPC_CheckInteger, 0, 
/* 37732*/                  OPC_MoveParent,
/* 37733*/                  OPC_MoveChild, 9,
/* 37735*/                  OPC_RecordNode, // #3 = $pred
/* 37736*/                  OPC_CheckType, MVT::v4i1,
/* 37738*/                  OPC_MoveParent,
/* 37739*/                  OPC_CheckType, MVT::v8i16,
/* 37741*/                  OPC_EmitConvertToTarget, 2,
/* 37743*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 37746*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNbhu32), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQRSHRNbhu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37757*/                /*Scope*/ 27, /*->37785*/
/* 37758*/                  OPC_CheckInteger, 1, 
/* 37760*/                  OPC_MoveParent,
/* 37761*/                  OPC_MoveChild, 9,
/* 37763*/                  OPC_RecordNode, // #3 = $pred
/* 37764*/                  OPC_CheckType, MVT::v4i1,
/* 37766*/                  OPC_MoveParent,
/* 37767*/                  OPC_CheckType, MVT::v8i16,
/* 37769*/                  OPC_EmitConvertToTarget, 2,
/* 37771*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 37774*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRNthu32), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQRSHRNthu32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37785*/                0, /*End of Scope*/
/* 37786*/              /*Scope*/ 63, /*->37850*/
/* 37787*/                OPC_CheckInteger, 0, 
/* 37789*/                OPC_MoveParent,
/* 37790*/                OPC_MoveChild, 8,
/* 37792*/                OPC_Scope, 27, /*->37821*/ // 2 children in Scope
/* 37794*/                  OPC_CheckInteger, 0, 
/* 37796*/                  OPC_MoveParent,
/* 37797*/                  OPC_MoveChild, 9,
/* 37799*/                  OPC_RecordNode, // #3 = $pred
/* 37800*/                  OPC_CheckType, MVT::v4i1,
/* 37802*/                  OPC_MoveParent,
/* 37803*/                  OPC_CheckType, MVT::v8i16,
/* 37805*/                  OPC_EmitConvertToTarget, 2,
/* 37807*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 37810*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRUNs32bh), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQRSHRUNs32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37821*/                /*Scope*/ 27, /*->37849*/
/* 37822*/                  OPC_CheckInteger, 1, 
/* 37824*/                  OPC_MoveParent,
/* 37825*/                  OPC_MoveChild, 9,
/* 37827*/                  OPC_RecordNode, // #3 = $pred
/* 37828*/                  OPC_CheckType, MVT::v4i1,
/* 37830*/                  OPC_MoveParent,
/* 37831*/                  OPC_CheckType, MVT::v8i16,
/* 37833*/                  OPC_EmitConvertToTarget, 2,
/* 37835*/                  OPC_EmitInteger, MVT::i32, 1, 
/* 37838*/                  OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHRUNs32th), 0,
                                MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                            // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1633:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 37
                            // Dst: (MVE_VQRSHRUNs32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 37849*/                0, /*End of Scope*/
/* 37850*/              0, /*End of Scope*/
/* 37851*/            0, /*End of Scope*/
/* 37852*/          0, /*End of Scope*/
/* 37853*/        0, /*End of Scope*/
/* 37854*/      0, /*End of Scope*/
/* 37855*/    /*Scope*/ 0|128,4/*512*/, /*->38369*/
/* 37857*/      OPC_CheckChild0Integer, 94|128,12/*1630*/, 
/* 37860*/      OPC_RecordChild1, // #0 = $src
/* 37861*/      OPC_SwitchType /*2 cases */, 122|128,1/*250*/, MVT::v8i16,// ->38115
/* 37865*/        OPC_CheckChild1Type, MVT::v16i8,
/* 37867*/        OPC_Scope, 1|128,1/*129*/, /*->37999*/ // 2 children in Scope
/* 37870*/          OPC_RecordChild2, // #1 = $imm
/* 37871*/          OPC_Scope, 62, /*->37935*/ // 2 children in Scope
/* 37873*/            OPC_CheckChild3Integer, 0, 
/* 37875*/            OPC_Scope, 28, /*->37905*/ // 2 children in Scope
/* 37877*/              OPC_CheckChild4Integer, 0, 
/* 37879*/              OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectImmediateInRange<1,8>:$imm #2
/* 37882*/              OPC_EmitInteger, MVT::i32, 0, 
/* 37885*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37888*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 37894*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_imms8bh), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1630:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 24
                        // Dst: (MVE_VSHLL_imms8bh:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm)
/* 37905*/            /*Scope*/ 28, /*->37934*/
/* 37906*/              OPC_CheckChild4Integer, 1, 
/* 37908*/              OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectImmediateInRange<1,8>:$imm #2
/* 37911*/              OPC_EmitInteger, MVT::i32, 0, 
/* 37914*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37917*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 37923*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_imms8th), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1630:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 24
                        // Dst: (MVE_VSHLL_imms8th:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm)
/* 37934*/            0, /*End of Scope*/
/* 37935*/          /*Scope*/ 62, /*->37998*/
/* 37936*/            OPC_CheckChild3Integer, 1, 
/* 37938*/            OPC_Scope, 28, /*->37968*/ // 2 children in Scope
/* 37940*/              OPC_CheckChild4Integer, 0, 
/* 37942*/              OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectImmediateInRange<1,8>:$imm #2
/* 37945*/              OPC_EmitInteger, MVT::i32, 0, 
/* 37948*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37951*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 37957*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_immu8bh), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1630:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 24
                        // Dst: (MVE_VSHLL_immu8bh:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm)
/* 37968*/            /*Scope*/ 28, /*->37997*/
/* 37969*/              OPC_CheckChild4Integer, 1, 
/* 37971*/              OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectImmediateInRange<1,8>:$imm #2
/* 37974*/              OPC_EmitInteger, MVT::i32, 0, 
/* 37977*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 37980*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 37986*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_immu8th), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1630:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 24
                        // Dst: (MVE_VSHLL_immu8th:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm)
/* 37997*/            0, /*End of Scope*/
/* 37998*/          0, /*End of Scope*/
/* 37999*/        /*Scope*/ 114, /*->38114*/
/* 38000*/          OPC_CheckChild2Integer, 8, 
/* 38002*/          OPC_Scope, 54, /*->38058*/ // 2 children in Scope
/* 38004*/            OPC_CheckChild3Integer, 0, 
/* 38006*/            OPC_Scope, 24, /*->38032*/ // 2 children in Scope
/* 38008*/              OPC_CheckChild4Integer, 0, 
/* 38010*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38013*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38016*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 38022*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lws8bh), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1630:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHLL_lws8bh:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
/* 38032*/            /*Scope*/ 24, /*->38057*/
/* 38033*/              OPC_CheckChild4Integer, 1, 
/* 38035*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38038*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38041*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 38047*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lws8th), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1630:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHLL_lws8th:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
/* 38057*/            0, /*End of Scope*/
/* 38058*/          /*Scope*/ 54, /*->38113*/
/* 38059*/            OPC_CheckChild3Integer, 1, 
/* 38061*/            OPC_Scope, 24, /*->38087*/ // 2 children in Scope
/* 38063*/              OPC_CheckChild4Integer, 0, 
/* 38065*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38068*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38071*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 38077*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lwu8bh), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1630:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHLL_lwu8bh:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
/* 38087*/            /*Scope*/ 24, /*->38112*/
/* 38088*/              OPC_CheckChild4Integer, 1, 
/* 38090*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38093*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38096*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 38102*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lwu8th), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1630:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHLL_lwu8th:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
/* 38112*/            0, /*End of Scope*/
/* 38113*/          0, /*End of Scope*/
/* 38114*/        0, /*End of Scope*/
/* 38115*/      /*SwitchType*/ 122|128,1/*250*/, MVT::v4i32,// ->38368
/* 38118*/        OPC_CheckChild1Type, MVT::v8i16,
/* 38120*/        OPC_Scope, 1|128,1/*129*/, /*->38252*/ // 2 children in Scope
/* 38123*/          OPC_RecordChild2, // #1 = $imm
/* 38124*/          OPC_Scope, 62, /*->38188*/ // 2 children in Scope
/* 38126*/            OPC_CheckChild3Integer, 0, 
/* 38128*/            OPC_Scope, 28, /*->38158*/ // 2 children in Scope
/* 38130*/              OPC_CheckChild4Integer, 0, 
/* 38132*/              OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectImmediateInRange<1,16>:$imm #2
/* 38135*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38138*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38141*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 38147*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_imms16bh), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1630:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 24
                        // Dst: (MVE_VSHLL_imms16bh:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm)
/* 38158*/            /*Scope*/ 28, /*->38187*/
/* 38159*/              OPC_CheckChild4Integer, 1, 
/* 38161*/              OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectImmediateInRange<1,16>:$imm #2
/* 38164*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38167*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38170*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 38176*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_imms16th), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1630:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 24
                        // Dst: (MVE_VSHLL_imms16th:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm)
/* 38187*/            0, /*End of Scope*/
/* 38188*/          /*Scope*/ 62, /*->38251*/
/* 38189*/            OPC_CheckChild3Integer, 1, 
/* 38191*/            OPC_Scope, 28, /*->38221*/ // 2 children in Scope
/* 38193*/              OPC_CheckChild4Integer, 0, 
/* 38195*/              OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectImmediateInRange<1,16>:$imm #2
/* 38198*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38201*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38204*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 38210*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_immu16bh), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1630:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 24
                        // Dst: (MVE_VSHLL_immu16bh:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm)
/* 38221*/            /*Scope*/ 28, /*->38250*/
/* 38222*/              OPC_CheckChild4Integer, 1, 
/* 38224*/              OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectImmediateInRange<1,16>:$imm #2
/* 38227*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38230*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38233*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 38239*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_immu16th), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1630:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 24
                        // Dst: (MVE_VSHLL_immu16th:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm)
/* 38250*/            0, /*End of Scope*/
/* 38251*/          0, /*End of Scope*/
/* 38252*/        /*Scope*/ 114, /*->38367*/
/* 38253*/          OPC_CheckChild2Integer, 16, 
/* 38255*/          OPC_Scope, 54, /*->38311*/ // 2 children in Scope
/* 38257*/            OPC_CheckChild3Integer, 0, 
/* 38259*/            OPC_Scope, 24, /*->38285*/ // 2 children in Scope
/* 38261*/              OPC_CheckChild4Integer, 0, 
/* 38263*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38266*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38269*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 38275*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lws16bh), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1630:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHLL_lws16bh:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
/* 38285*/            /*Scope*/ 24, /*->38310*/
/* 38286*/              OPC_CheckChild4Integer, 1, 
/* 38288*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38291*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38294*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 38300*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lws16th), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1630:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHLL_lws16th:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
/* 38310*/            0, /*End of Scope*/
/* 38311*/          /*Scope*/ 54, /*->38366*/
/* 38312*/            OPC_CheckChild3Integer, 1, 
/* 38314*/            OPC_Scope, 24, /*->38340*/ // 2 children in Scope
/* 38316*/              OPC_CheckChild4Integer, 0, 
/* 38318*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38321*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38324*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 38330*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lwu16bh), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1630:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHLL_lwu16bh:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
/* 38340*/            /*Scope*/ 24, /*->38365*/
/* 38341*/              OPC_CheckChild4Integer, 1, 
/* 38343*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38346*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38349*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 38355*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lwu16th), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1630:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHLL_lwu16th:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
/* 38365*/            0, /*End of Scope*/
/* 38366*/          0, /*End of Scope*/
/* 38367*/        0, /*End of Scope*/
/* 38368*/      0, // EndSwitchType
/* 38369*/    /*Scope*/ 78|128,3/*462*/, /*->38833*/
/* 38371*/      OPC_CheckChild0Integer, 95|128,12/*1631*/, 
/* 38374*/      OPC_RecordChild1, // #0 = $src
/* 38375*/      OPC_SwitchType /*2 cases */, 97|128,1/*225*/, MVT::v8i16,// ->38604
/* 38379*/        OPC_CheckChild1Type, MVT::v16i8,
/* 38381*/        OPC_Scope, 117, /*->38500*/ // 2 children in Scope
/* 38383*/          OPC_RecordChild2, // #1 = $imm
/* 38384*/          OPC_Scope, 56, /*->38442*/ // 2 children in Scope
/* 38386*/            OPC_CheckChild3Integer, 0, 
/* 38388*/            OPC_Scope, 25, /*->38415*/ // 2 children in Scope
/* 38390*/              OPC_CheckChild4Integer, 0, 
/* 38392*/              OPC_RecordChild5, // #2 = $mask
/* 38393*/              OPC_CheckChild5Type, MVT::v16i1,
/* 38395*/              OPC_RecordChild6, // #3 = $inactive
/* 38396*/              OPC_CheckChild6Type, MVT::v8i16,
/* 38398*/              OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectImmediateInRange<1,8>:$imm #4
/* 38401*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38404*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_imms8bh), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1631:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 24
                        // Dst: (MVE_VSHLL_imms8bh:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 38415*/            /*Scope*/ 25, /*->38441*/
/* 38416*/              OPC_CheckChild4Integer, 1, 
/* 38418*/              OPC_RecordChild5, // #2 = $mask
/* 38419*/              OPC_CheckChild5Type, MVT::v16i1,
/* 38421*/              OPC_RecordChild6, // #3 = $inactive
/* 38422*/              OPC_CheckChild6Type, MVT::v8i16,
/* 38424*/              OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectImmediateInRange<1,8>:$imm #4
/* 38427*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38430*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_imms8th), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1631:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 24
                        // Dst: (MVE_VSHLL_imms8th:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 38441*/            0, /*End of Scope*/
/* 38442*/          /*Scope*/ 56, /*->38499*/
/* 38443*/            OPC_CheckChild3Integer, 1, 
/* 38445*/            OPC_Scope, 25, /*->38472*/ // 2 children in Scope
/* 38447*/              OPC_CheckChild4Integer, 0, 
/* 38449*/              OPC_RecordChild5, // #2 = $mask
/* 38450*/              OPC_CheckChild5Type, MVT::v16i1,
/* 38452*/              OPC_RecordChild6, // #3 = $inactive
/* 38453*/              OPC_CheckChild6Type, MVT::v8i16,
/* 38455*/              OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectImmediateInRange<1,8>:$imm #4
/* 38458*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38461*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_immu8bh), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1631:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 24
                        // Dst: (MVE_VSHLL_immu8bh:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 38472*/            /*Scope*/ 25, /*->38498*/
/* 38473*/              OPC_CheckChild4Integer, 1, 
/* 38475*/              OPC_RecordChild5, // #2 = $mask
/* 38476*/              OPC_CheckChild5Type, MVT::v16i1,
/* 38478*/              OPC_RecordChild6, // #3 = $inactive
/* 38479*/              OPC_CheckChild6Type, MVT::v8i16,
/* 38481*/              OPC_CheckComplexPat, /*CP*/5, /*#*/1, // SelectImmediateInRange<1,8>:$imm #4
/* 38484*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38487*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_immu8th), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1631:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 24
                        // Dst: (MVE_VSHLL_immu8th:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src, mve_shift_imm1_7:{ *:[i32] }:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 38498*/            0, /*End of Scope*/
/* 38499*/          0, /*End of Scope*/
/* 38500*/        /*Scope*/ 102, /*->38603*/
/* 38501*/          OPC_CheckChild2Integer, 8, 
/* 38503*/          OPC_Scope, 48, /*->38553*/ // 2 children in Scope
/* 38505*/            OPC_CheckChild3Integer, 0, 
/* 38507*/            OPC_Scope, 21, /*->38530*/ // 2 children in Scope
/* 38509*/              OPC_CheckChild4Integer, 0, 
/* 38511*/              OPC_RecordChild5, // #1 = $mask
/* 38512*/              OPC_CheckChild5Type, MVT::v16i1,
/* 38514*/              OPC_RecordChild6, // #2 = $inactive
/* 38515*/              OPC_CheckChild6Type, MVT::v8i16,
/* 38517*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38520*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lws8bh), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 3, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1631:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VSHLL_lws8bh:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 38530*/            /*Scope*/ 21, /*->38552*/
/* 38531*/              OPC_CheckChild4Integer, 1, 
/* 38533*/              OPC_RecordChild5, // #1 = $mask
/* 38534*/              OPC_CheckChild5Type, MVT::v16i1,
/* 38536*/              OPC_RecordChild6, // #2 = $inactive
/* 38537*/              OPC_CheckChild6Type, MVT::v8i16,
/* 38539*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38542*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lws8th), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 3, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1631:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VSHLL_lws8th:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 38552*/            0, /*End of Scope*/
/* 38553*/          /*Scope*/ 48, /*->38602*/
/* 38554*/            OPC_CheckChild3Integer, 1, 
/* 38556*/            OPC_Scope, 21, /*->38579*/ // 2 children in Scope
/* 38558*/              OPC_CheckChild4Integer, 0, 
/* 38560*/              OPC_RecordChild5, // #1 = $mask
/* 38561*/              OPC_CheckChild5Type, MVT::v16i1,
/* 38563*/              OPC_RecordChild6, // #2 = $inactive
/* 38564*/              OPC_CheckChild6Type, MVT::v8i16,
/* 38566*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38569*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lwu8bh), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 3, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1631:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VSHLL_lwu8bh:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 38579*/            /*Scope*/ 21, /*->38601*/
/* 38580*/              OPC_CheckChild4Integer, 1, 
/* 38582*/              OPC_RecordChild5, // #1 = $mask
/* 38583*/              OPC_CheckChild5Type, MVT::v16i1,
/* 38585*/              OPC_RecordChild6, // #2 = $inactive
/* 38586*/              OPC_CheckChild6Type, MVT::v8i16,
/* 38588*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38591*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lwu8th), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 3, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1631:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, 8:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VSHLL_lwu8th:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 38601*/            0, /*End of Scope*/
/* 38602*/          0, /*End of Scope*/
/* 38603*/        0, /*End of Scope*/
/* 38604*/      /*SwitchType*/ 97|128,1/*225*/, MVT::v4i32,// ->38832
/* 38607*/        OPC_CheckChild1Type, MVT::v8i16,
/* 38609*/        OPC_Scope, 117, /*->38728*/ // 2 children in Scope
/* 38611*/          OPC_RecordChild2, // #1 = $imm
/* 38612*/          OPC_Scope, 56, /*->38670*/ // 2 children in Scope
/* 38614*/            OPC_CheckChild3Integer, 0, 
/* 38616*/            OPC_Scope, 25, /*->38643*/ // 2 children in Scope
/* 38618*/              OPC_CheckChild4Integer, 0, 
/* 38620*/              OPC_RecordChild5, // #2 = $mask
/* 38621*/              OPC_CheckChild5Type, MVT::v8i1,
/* 38623*/              OPC_RecordChild6, // #3 = $inactive
/* 38624*/              OPC_CheckChild6Type, MVT::v4i32,
/* 38626*/              OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectImmediateInRange<1,16>:$imm #4
/* 38629*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38632*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_imms16bh), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1631:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 24
                        // Dst: (MVE_VSHLL_imms16bh:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 38643*/            /*Scope*/ 25, /*->38669*/
/* 38644*/              OPC_CheckChild4Integer, 1, 
/* 38646*/              OPC_RecordChild5, // #2 = $mask
/* 38647*/              OPC_CheckChild5Type, MVT::v8i1,
/* 38649*/              OPC_RecordChild6, // #3 = $inactive
/* 38650*/              OPC_CheckChild6Type, MVT::v4i32,
/* 38652*/              OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectImmediateInRange<1,16>:$imm #4
/* 38655*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38658*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_imms16th), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1631:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 24
                        // Dst: (MVE_VSHLL_imms16th:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 38669*/            0, /*End of Scope*/
/* 38670*/          /*Scope*/ 56, /*->38727*/
/* 38671*/            OPC_CheckChild3Integer, 1, 
/* 38673*/            OPC_Scope, 25, /*->38700*/ // 2 children in Scope
/* 38675*/              OPC_CheckChild4Integer, 0, 
/* 38677*/              OPC_RecordChild5, // #2 = $mask
/* 38678*/              OPC_CheckChild5Type, MVT::v8i1,
/* 38680*/              OPC_RecordChild6, // #3 = $inactive
/* 38681*/              OPC_CheckChild6Type, MVT::v4i32,
/* 38683*/              OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectImmediateInRange<1,16>:$imm #4
/* 38686*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38689*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_immu16bh), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1631:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 24
                        // Dst: (MVE_VSHLL_immu16bh:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 38700*/            /*Scope*/ 25, /*->38726*/
/* 38701*/              OPC_CheckChild4Integer, 1, 
/* 38703*/              OPC_RecordChild5, // #2 = $mask
/* 38704*/              OPC_CheckChild5Type, MVT::v8i1,
/* 38706*/              OPC_RecordChild6, // #3 = $inactive
/* 38707*/              OPC_CheckChild6Type, MVT::v4i32,
/* 38709*/              OPC_CheckComplexPat, /*CP*/6, /*#*/1, // SelectImmediateInRange<1,16>:$imm #4
/* 38712*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38715*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_immu16th), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1631:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 24
                        // Dst: (MVE_VSHLL_immu16th:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src, mve_shift_imm1_15:{ *:[i32] }:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 38726*/            0, /*End of Scope*/
/* 38727*/          0, /*End of Scope*/
/* 38728*/        /*Scope*/ 102, /*->38831*/
/* 38729*/          OPC_CheckChild2Integer, 16, 
/* 38731*/          OPC_Scope, 48, /*->38781*/ // 2 children in Scope
/* 38733*/            OPC_CheckChild3Integer, 0, 
/* 38735*/            OPC_Scope, 21, /*->38758*/ // 2 children in Scope
/* 38737*/              OPC_CheckChild4Integer, 0, 
/* 38739*/              OPC_RecordChild5, // #1 = $mask
/* 38740*/              OPC_CheckChild5Type, MVT::v8i1,
/* 38742*/              OPC_RecordChild6, // #2 = $inactive
/* 38743*/              OPC_CheckChild6Type, MVT::v4i32,
/* 38745*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38748*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lws16bh), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 3, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1631:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VSHLL_lws16bh:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 38758*/            /*Scope*/ 21, /*->38780*/
/* 38759*/              OPC_CheckChild4Integer, 1, 
/* 38761*/              OPC_RecordChild5, // #1 = $mask
/* 38762*/              OPC_CheckChild5Type, MVT::v8i1,
/* 38764*/              OPC_RecordChild6, // #2 = $inactive
/* 38765*/              OPC_CheckChild6Type, MVT::v4i32,
/* 38767*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38770*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lws16th), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 3, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1631:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VSHLL_lws16th:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 38780*/            0, /*End of Scope*/
/* 38781*/          /*Scope*/ 48, /*->38830*/
/* 38782*/            OPC_CheckChild3Integer, 1, 
/* 38784*/            OPC_Scope, 21, /*->38807*/ // 2 children in Scope
/* 38786*/              OPC_CheckChild4Integer, 0, 
/* 38788*/              OPC_RecordChild5, // #1 = $mask
/* 38789*/              OPC_CheckChild5Type, MVT::v8i1,
/* 38791*/              OPC_RecordChild6, // #2 = $inactive
/* 38792*/              OPC_CheckChild6Type, MVT::v4i32,
/* 38794*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38797*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lwu16bh), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 3, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1631:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VSHLL_lwu16bh:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 38807*/            /*Scope*/ 21, /*->38829*/
/* 38808*/              OPC_CheckChild4Integer, 1, 
/* 38810*/              OPC_RecordChild5, // #1 = $mask
/* 38811*/              OPC_CheckChild5Type, MVT::v8i1,
/* 38813*/              OPC_RecordChild6, // #2 = $inactive
/* 38814*/              OPC_CheckChild6Type, MVT::v4i32,
/* 38816*/              OPC_EmitInteger, MVT::i32, 1, 
/* 38819*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHLL_lwu16th), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 3, 1, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1631:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VSHLL_lwu16th:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 38829*/            0, /*End of Scope*/
/* 38830*/          0, /*End of Scope*/
/* 38831*/        0, /*End of Scope*/
/* 38832*/      0, // EndSwitchType
/* 38833*/    /*Scope*/ 69|128,6/*837*/, /*->39672*/
/* 38835*/      OPC_CheckChild0Integer, 92|128,12/*1628*/, 
/* 38838*/      OPC_RecordChild1, // #0 = $in
/* 38839*/      OPC_Scope, 19|128,2/*275*/, /*->39117*/ // 3 children in Scope
/* 38842*/        OPC_CheckChild1Type, MVT::v16i8,
/* 38844*/        OPC_RecordChild2, // #1 = $sh
/* 38845*/        OPC_CheckChild2Type, MVT::v16i8,
/* 38847*/        OPC_Scope, 4|128,1/*132*/, /*->38982*/ // 2 children in Scope
/* 38850*/          OPC_CheckChild3Integer, 0, 
/* 38852*/          OPC_Scope, 63, /*->38917*/ // 2 children in Scope
/* 38854*/            OPC_CheckChild4Integer, 0, 
/* 38856*/            OPC_MoveChild5,
/* 38857*/            OPC_Scope, 28, /*->38887*/ // 2 children in Scope
/* 38859*/              OPC_CheckInteger, 0, 
/* 38861*/              OPC_MoveParent,
/* 38862*/              OPC_CheckType, MVT::v16i8,
/* 38864*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38867*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38870*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 38876*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecs8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1628:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
/* 38887*/            /*Scope*/ 28, /*->38916*/
/* 38888*/              OPC_CheckInteger, 1, 
/* 38890*/              OPC_MoveParent,
/* 38891*/              OPC_CheckType, MVT::v16i8,
/* 38893*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38896*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38899*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 38905*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecu8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1628:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
/* 38916*/            0, /*End of Scope*/
/* 38917*/          /*Scope*/ 63, /*->38981*/
/* 38918*/            OPC_CheckChild4Integer, 1, 
/* 38920*/            OPC_MoveChild5,
/* 38921*/            OPC_Scope, 28, /*->38951*/ // 2 children in Scope
/* 38923*/              OPC_CheckInteger, 0, 
/* 38925*/              OPC_MoveParent,
/* 38926*/              OPC_CheckType, MVT::v16i8,
/* 38928*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38931*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38934*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 38940*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_by_vecs8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1628:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VRSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
/* 38951*/            /*Scope*/ 28, /*->38980*/
/* 38952*/              OPC_CheckInteger, 1, 
/* 38954*/              OPC_MoveParent,
/* 38955*/              OPC_CheckType, MVT::v16i8,
/* 38957*/              OPC_EmitInteger, MVT::i32, 0, 
/* 38960*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 38963*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 38969*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_by_vecu8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1628:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VRSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
/* 38980*/            0, /*End of Scope*/
/* 38981*/          0, /*End of Scope*/
/* 38982*/        /*Scope*/ 4|128,1/*132*/, /*->39116*/
/* 38984*/          OPC_CheckChild3Integer, 1, 
/* 38986*/          OPC_Scope, 63, /*->39051*/ // 2 children in Scope
/* 38988*/            OPC_CheckChild4Integer, 0, 
/* 38990*/            OPC_MoveChild5,
/* 38991*/            OPC_Scope, 28, /*->39021*/ // 2 children in Scope
/* 38993*/              OPC_CheckInteger, 0, 
/* 38995*/              OPC_MoveParent,
/* 38996*/              OPC_CheckType, MVT::v16i8,
/* 38998*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39001*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39004*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39010*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_by_vecs8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1628:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
/* 39021*/            /*Scope*/ 28, /*->39050*/
/* 39022*/              OPC_CheckInteger, 1, 
/* 39024*/              OPC_MoveParent,
/* 39025*/              OPC_CheckType, MVT::v16i8,
/* 39027*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39030*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39033*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39039*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_by_vecu8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1628:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
/* 39050*/            0, /*End of Scope*/
/* 39051*/          /*Scope*/ 63, /*->39115*/
/* 39052*/            OPC_CheckChild4Integer, 1, 
/* 39054*/            OPC_MoveChild5,
/* 39055*/            OPC_Scope, 28, /*->39085*/ // 2 children in Scope
/* 39057*/              OPC_CheckInteger, 0, 
/* 39059*/              OPC_MoveParent,
/* 39060*/              OPC_CheckType, MVT::v16i8,
/* 39062*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39065*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39068*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39074*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_by_vecs8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1628:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQRSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
/* 39085*/            /*Scope*/ 28, /*->39114*/
/* 39086*/              OPC_CheckInteger, 1, 
/* 39088*/              OPC_MoveParent,
/* 39089*/              OPC_CheckType, MVT::v16i8,
/* 39091*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39094*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39097*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39103*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_by_vecu8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1628:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQRSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh)
/* 39114*/            0, /*End of Scope*/
/* 39115*/          0, /*End of Scope*/
/* 39116*/        0, /*End of Scope*/
/* 39117*/      /*Scope*/ 19|128,2/*275*/, /*->39394*/
/* 39119*/        OPC_CheckChild1Type, MVT::v8i16,
/* 39121*/        OPC_RecordChild2, // #1 = $sh
/* 39122*/        OPC_CheckChild2Type, MVT::v8i16,
/* 39124*/        OPC_Scope, 4|128,1/*132*/, /*->39259*/ // 2 children in Scope
/* 39127*/          OPC_CheckChild3Integer, 0, 
/* 39129*/          OPC_Scope, 63, /*->39194*/ // 2 children in Scope
/* 39131*/            OPC_CheckChild4Integer, 0, 
/* 39133*/            OPC_MoveChild5,
/* 39134*/            OPC_Scope, 28, /*->39164*/ // 2 children in Scope
/* 39136*/              OPC_CheckInteger, 0, 
/* 39138*/              OPC_MoveParent,
/* 39139*/              OPC_CheckType, MVT::v8i16,
/* 39141*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39144*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39147*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39153*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecs16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1628:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
/* 39164*/            /*Scope*/ 28, /*->39193*/
/* 39165*/              OPC_CheckInteger, 1, 
/* 39167*/              OPC_MoveParent,
/* 39168*/              OPC_CheckType, MVT::v8i16,
/* 39170*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39173*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39176*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39182*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecu16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1628:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
/* 39193*/            0, /*End of Scope*/
/* 39194*/          /*Scope*/ 63, /*->39258*/
/* 39195*/            OPC_CheckChild4Integer, 1, 
/* 39197*/            OPC_MoveChild5,
/* 39198*/            OPC_Scope, 28, /*->39228*/ // 2 children in Scope
/* 39200*/              OPC_CheckInteger, 0, 
/* 39202*/              OPC_MoveParent,
/* 39203*/              OPC_CheckType, MVT::v8i16,
/* 39205*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39208*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39211*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39217*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_by_vecs16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1628:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VRSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
/* 39228*/            /*Scope*/ 28, /*->39257*/
/* 39229*/              OPC_CheckInteger, 1, 
/* 39231*/              OPC_MoveParent,
/* 39232*/              OPC_CheckType, MVT::v8i16,
/* 39234*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39237*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39240*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39246*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_by_vecu16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1628:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VRSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
/* 39257*/            0, /*End of Scope*/
/* 39258*/          0, /*End of Scope*/
/* 39259*/        /*Scope*/ 4|128,1/*132*/, /*->39393*/
/* 39261*/          OPC_CheckChild3Integer, 1, 
/* 39263*/          OPC_Scope, 63, /*->39328*/ // 2 children in Scope
/* 39265*/            OPC_CheckChild4Integer, 0, 
/* 39267*/            OPC_MoveChild5,
/* 39268*/            OPC_Scope, 28, /*->39298*/ // 2 children in Scope
/* 39270*/              OPC_CheckInteger, 0, 
/* 39272*/              OPC_MoveParent,
/* 39273*/              OPC_CheckType, MVT::v8i16,
/* 39275*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39278*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39281*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39287*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_by_vecs16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1628:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
/* 39298*/            /*Scope*/ 28, /*->39327*/
/* 39299*/              OPC_CheckInteger, 1, 
/* 39301*/              OPC_MoveParent,
/* 39302*/              OPC_CheckType, MVT::v8i16,
/* 39304*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39307*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39310*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39316*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_by_vecu16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1628:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
/* 39327*/            0, /*End of Scope*/
/* 39328*/          /*Scope*/ 63, /*->39392*/
/* 39329*/            OPC_CheckChild4Integer, 1, 
/* 39331*/            OPC_MoveChild5,
/* 39332*/            OPC_Scope, 28, /*->39362*/ // 2 children in Scope
/* 39334*/              OPC_CheckInteger, 0, 
/* 39336*/              OPC_MoveParent,
/* 39337*/              OPC_CheckType, MVT::v8i16,
/* 39339*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39342*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39345*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39351*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_by_vecs16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1628:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQRSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
/* 39362*/            /*Scope*/ 28, /*->39391*/
/* 39363*/              OPC_CheckInteger, 1, 
/* 39365*/              OPC_MoveParent,
/* 39366*/              OPC_CheckType, MVT::v8i16,
/* 39368*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39371*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39374*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39380*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_by_vecu16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1628:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQRSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh)
/* 39391*/            0, /*End of Scope*/
/* 39392*/          0, /*End of Scope*/
/* 39393*/        0, /*End of Scope*/
/* 39394*/      /*Scope*/ 19|128,2/*275*/, /*->39671*/
/* 39396*/        OPC_CheckChild1Type, MVT::v4i32,
/* 39398*/        OPC_RecordChild2, // #1 = $sh
/* 39399*/        OPC_CheckChild2Type, MVT::v4i32,
/* 39401*/        OPC_Scope, 4|128,1/*132*/, /*->39536*/ // 2 children in Scope
/* 39404*/          OPC_CheckChild3Integer, 0, 
/* 39406*/          OPC_Scope, 63, /*->39471*/ // 2 children in Scope
/* 39408*/            OPC_CheckChild4Integer, 0, 
/* 39410*/            OPC_MoveChild5,
/* 39411*/            OPC_Scope, 28, /*->39441*/ // 2 children in Scope
/* 39413*/              OPC_CheckInteger, 0, 
/* 39415*/              OPC_MoveParent,
/* 39416*/              OPC_CheckType, MVT::v4i32,
/* 39418*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39421*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39424*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39430*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecs32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1628:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
/* 39441*/            /*Scope*/ 28, /*->39470*/
/* 39442*/              OPC_CheckInteger, 1, 
/* 39444*/              OPC_MoveParent,
/* 39445*/              OPC_CheckType, MVT::v4i32,
/* 39447*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39450*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39453*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39459*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecu32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1628:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
/* 39470*/            0, /*End of Scope*/
/* 39471*/          /*Scope*/ 63, /*->39535*/
/* 39472*/            OPC_CheckChild4Integer, 1, 
/* 39474*/            OPC_MoveChild5,
/* 39475*/            OPC_Scope, 28, /*->39505*/ // 2 children in Scope
/* 39477*/              OPC_CheckInteger, 0, 
/* 39479*/              OPC_MoveParent,
/* 39480*/              OPC_CheckType, MVT::v4i32,
/* 39482*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39485*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39488*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39494*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_by_vecs32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1628:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VRSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
/* 39505*/            /*Scope*/ 28, /*->39534*/
/* 39506*/              OPC_CheckInteger, 1, 
/* 39508*/              OPC_MoveParent,
/* 39509*/              OPC_CheckType, MVT::v4i32,
/* 39511*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39514*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39517*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39523*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_by_vecu32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1628:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VRSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
/* 39534*/            0, /*End of Scope*/
/* 39535*/          0, /*End of Scope*/
/* 39536*/        /*Scope*/ 4|128,1/*132*/, /*->39670*/
/* 39538*/          OPC_CheckChild3Integer, 1, 
/* 39540*/          OPC_Scope, 63, /*->39605*/ // 2 children in Scope
/* 39542*/            OPC_CheckChild4Integer, 0, 
/* 39544*/            OPC_MoveChild5,
/* 39545*/            OPC_Scope, 28, /*->39575*/ // 2 children in Scope
/* 39547*/              OPC_CheckInteger, 0, 
/* 39549*/              OPC_MoveParent,
/* 39550*/              OPC_CheckType, MVT::v4i32,
/* 39552*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39555*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39558*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39564*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_by_vecs32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1628:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
/* 39575*/            /*Scope*/ 28, /*->39604*/
/* 39576*/              OPC_CheckInteger, 1, 
/* 39578*/              OPC_MoveParent,
/* 39579*/              OPC_CheckType, MVT::v4i32,
/* 39581*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39584*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39587*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39593*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_by_vecu32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1628:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
/* 39604*/            0, /*End of Scope*/
/* 39605*/          /*Scope*/ 63, /*->39669*/
/* 39606*/            OPC_CheckChild4Integer, 1, 
/* 39608*/            OPC_MoveChild5,
/* 39609*/            OPC_Scope, 28, /*->39639*/ // 2 children in Scope
/* 39611*/              OPC_CheckInteger, 0, 
/* 39613*/              OPC_MoveParent,
/* 39614*/              OPC_CheckType, MVT::v4i32,
/* 39616*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39619*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39622*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39628*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_by_vecs32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1628:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQRSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
/* 39639*/            /*Scope*/ 28, /*->39668*/
/* 39640*/              OPC_CheckInteger, 1, 
/* 39642*/              OPC_MoveParent,
/* 39643*/              OPC_CheckType, MVT::v4i32,
/* 39645*/              OPC_EmitInteger, MVT::i32, 0, 
/* 39648*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 39651*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 39657*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_by_vecu32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1628:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQRSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh)
/* 39668*/            0, /*End of Scope*/
/* 39669*/          0, /*End of Scope*/
/* 39670*/        0, /*End of Scope*/
/* 39671*/      0, /*End of Scope*/
/* 39672*/    /*Scope*/ 119|128,5/*759*/, /*->40433*/
/* 39674*/      OPC_CheckChild0Integer, 93|128,12/*1629*/, 
/* 39677*/      OPC_RecordChild1, // #0 = $in
/* 39678*/      OPC_Scope, 121|128,1/*249*/, /*->39930*/ // 3 children in Scope
/* 39681*/        OPC_CheckChild1Type, MVT::v16i8,
/* 39683*/        OPC_RecordChild2, // #1 = $sh
/* 39684*/        OPC_CheckChild2Type, MVT::v16i8,
/* 39686*/        OPC_Scope, 120, /*->39808*/ // 2 children in Scope
/* 39688*/          OPC_CheckChild3Integer, 0, 
/* 39690*/          OPC_Scope, 57, /*->39749*/ // 2 children in Scope
/* 39692*/            OPC_CheckChild4Integer, 0, 
/* 39694*/            OPC_MoveChild5,
/* 39695*/            OPC_Scope, 25, /*->39722*/ // 2 children in Scope
/* 39697*/              OPC_CheckInteger, 0, 
/* 39699*/              OPC_MoveParent,
/* 39700*/              OPC_RecordChild6, // #2 = $mask
/* 39701*/              OPC_CheckChild6Type, MVT::v16i1,
/* 39703*/              OPC_RecordChild7, // #3 = $inactive
/* 39704*/              OPC_CheckChild7Type, MVT::v16i8,
/* 39706*/              OPC_CheckType, MVT::v16i8,
/* 39708*/              OPC_EmitInteger, MVT::i32, 1, 
/* 39711*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecs8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1629:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 39722*/            /*Scope*/ 25, /*->39748*/
/* 39723*/              OPC_CheckInteger, 1, 
/* 39725*/              OPC_MoveParent,
/* 39726*/              OPC_RecordChild6, // #2 = $mask
/* 39727*/              OPC_CheckChild6Type, MVT::v16i1,
/* 39729*/              OPC_RecordChild7, // #3 = $inactive
/* 39730*/              OPC_CheckChild7Type, MVT::v16i8,
/* 39732*/              OPC_CheckType, MVT::v16i8,
/* 39734*/              OPC_EmitInteger, MVT::i32, 1, 
/* 39737*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecu8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1629:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 39748*/            0, /*End of Scope*/
/* 39749*/          /*Scope*/ 57, /*->39807*/
/* 39750*/            OPC_CheckChild4Integer, 1, 
/* 39752*/            OPC_MoveChild5,
/* 39753*/            OPC_Scope, 25, /*->39780*/ // 2 children in Scope
/* 39755*/              OPC_CheckInteger, 0, 
/* 39757*/              OPC_MoveParent,
/* 39758*/              OPC_RecordChild6, // #2 = $mask
/* 39759*/              OPC_CheckChild6Type, MVT::v16i1,
/* 39761*/              OPC_RecordChild7, // #3 = $inactive
/* 39762*/              OPC_CheckChild7Type, MVT::v16i8,
/* 39764*/              OPC_CheckType, MVT::v16i8,
/* 39766*/              OPC_EmitInteger, MVT::i32, 1, 
/* 39769*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_by_vecs8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1629:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VRSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 39780*/            /*Scope*/ 25, /*->39806*/
/* 39781*/              OPC_CheckInteger, 1, 
/* 39783*/              OPC_MoveParent,
/* 39784*/              OPC_RecordChild6, // #2 = $mask
/* 39785*/              OPC_CheckChild6Type, MVT::v16i1,
/* 39787*/              OPC_RecordChild7, // #3 = $inactive
/* 39788*/              OPC_CheckChild7Type, MVT::v16i8,
/* 39790*/              OPC_CheckType, MVT::v16i8,
/* 39792*/              OPC_EmitInteger, MVT::i32, 1, 
/* 39795*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_by_vecu8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1629:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VRSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 39806*/            0, /*End of Scope*/
/* 39807*/          0, /*End of Scope*/
/* 39808*/        /*Scope*/ 120, /*->39929*/
/* 39809*/          OPC_CheckChild3Integer, 1, 
/* 39811*/          OPC_Scope, 57, /*->39870*/ // 2 children in Scope
/* 39813*/            OPC_CheckChild4Integer, 0, 
/* 39815*/            OPC_MoveChild5,
/* 39816*/            OPC_Scope, 25, /*->39843*/ // 2 children in Scope
/* 39818*/              OPC_CheckInteger, 0, 
/* 39820*/              OPC_MoveParent,
/* 39821*/              OPC_RecordChild6, // #2 = $mask
/* 39822*/              OPC_CheckChild6Type, MVT::v16i1,
/* 39824*/              OPC_RecordChild7, // #3 = $inactive
/* 39825*/              OPC_CheckChild7Type, MVT::v16i8,
/* 39827*/              OPC_CheckType, MVT::v16i8,
/* 39829*/              OPC_EmitInteger, MVT::i32, 1, 
/* 39832*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_by_vecs8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1629:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VQSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 39843*/            /*Scope*/ 25, /*->39869*/
/* 39844*/              OPC_CheckInteger, 1, 
/* 39846*/              OPC_MoveParent,
/* 39847*/              OPC_RecordChild6, // #2 = $mask
/* 39848*/              OPC_CheckChild6Type, MVT::v16i1,
/* 39850*/              OPC_RecordChild7, // #3 = $inactive
/* 39851*/              OPC_CheckChild7Type, MVT::v16i8,
/* 39853*/              OPC_CheckType, MVT::v16i8,
/* 39855*/              OPC_EmitInteger, MVT::i32, 1, 
/* 39858*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_by_vecu8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1629:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VQSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 39869*/            0, /*End of Scope*/
/* 39870*/          /*Scope*/ 57, /*->39928*/
/* 39871*/            OPC_CheckChild4Integer, 1, 
/* 39873*/            OPC_MoveChild5,
/* 39874*/            OPC_Scope, 25, /*->39901*/ // 2 children in Scope
/* 39876*/              OPC_CheckInteger, 0, 
/* 39878*/              OPC_MoveParent,
/* 39879*/              OPC_RecordChild6, // #2 = $mask
/* 39880*/              OPC_CheckChild6Type, MVT::v16i1,
/* 39882*/              OPC_RecordChild7, // #3 = $inactive
/* 39883*/              OPC_CheckChild7Type, MVT::v16i8,
/* 39885*/              OPC_CheckType, MVT::v16i8,
/* 39887*/              OPC_EmitInteger, MVT::i32, 1, 
/* 39890*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_by_vecs8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1629:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VQRSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 39901*/            /*Scope*/ 25, /*->39927*/
/* 39902*/              OPC_CheckInteger, 1, 
/* 39904*/              OPC_MoveParent,
/* 39905*/              OPC_RecordChild6, // #2 = $mask
/* 39906*/              OPC_CheckChild6Type, MVT::v16i1,
/* 39908*/              OPC_RecordChild7, // #3 = $inactive
/* 39909*/              OPC_CheckChild7Type, MVT::v16i8,
/* 39911*/              OPC_CheckType, MVT::v16i8,
/* 39913*/              OPC_EmitInteger, MVT::i32, 1, 
/* 39916*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_by_vecu8), 0,
                            MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1629:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VQRSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, MQPR:{ *:[v16i8] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 39927*/            0, /*End of Scope*/
/* 39928*/          0, /*End of Scope*/
/* 39929*/        0, /*End of Scope*/
/* 39930*/      /*Scope*/ 121|128,1/*249*/, /*->40181*/
/* 39932*/        OPC_CheckChild1Type, MVT::v8i16,
/* 39934*/        OPC_RecordChild2, // #1 = $sh
/* 39935*/        OPC_CheckChild2Type, MVT::v8i16,
/* 39937*/        OPC_Scope, 120, /*->40059*/ // 2 children in Scope
/* 39939*/          OPC_CheckChild3Integer, 0, 
/* 39941*/          OPC_Scope, 57, /*->40000*/ // 2 children in Scope
/* 39943*/            OPC_CheckChild4Integer, 0, 
/* 39945*/            OPC_MoveChild5,
/* 39946*/            OPC_Scope, 25, /*->39973*/ // 2 children in Scope
/* 39948*/              OPC_CheckInteger, 0, 
/* 39950*/              OPC_MoveParent,
/* 39951*/              OPC_RecordChild6, // #2 = $mask
/* 39952*/              OPC_CheckChild6Type, MVT::v8i1,
/* 39954*/              OPC_RecordChild7, // #3 = $inactive
/* 39955*/              OPC_CheckChild7Type, MVT::v8i16,
/* 39957*/              OPC_CheckType, MVT::v8i16,
/* 39959*/              OPC_EmitInteger, MVT::i32, 1, 
/* 39962*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecs16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1629:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 39973*/            /*Scope*/ 25, /*->39999*/
/* 39974*/              OPC_CheckInteger, 1, 
/* 39976*/              OPC_MoveParent,
/* 39977*/              OPC_RecordChild6, // #2 = $mask
/* 39978*/              OPC_CheckChild6Type, MVT::v8i1,
/* 39980*/              OPC_RecordChild7, // #3 = $inactive
/* 39981*/              OPC_CheckChild7Type, MVT::v8i16,
/* 39983*/              OPC_CheckType, MVT::v8i16,
/* 39985*/              OPC_EmitInteger, MVT::i32, 1, 
/* 39988*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecu16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1629:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 39999*/            0, /*End of Scope*/
/* 40000*/          /*Scope*/ 57, /*->40058*/
/* 40001*/            OPC_CheckChild4Integer, 1, 
/* 40003*/            OPC_MoveChild5,
/* 40004*/            OPC_Scope, 25, /*->40031*/ // 2 children in Scope
/* 40006*/              OPC_CheckInteger, 0, 
/* 40008*/              OPC_MoveParent,
/* 40009*/              OPC_RecordChild6, // #2 = $mask
/* 40010*/              OPC_CheckChild6Type, MVT::v8i1,
/* 40012*/              OPC_RecordChild7, // #3 = $inactive
/* 40013*/              OPC_CheckChild7Type, MVT::v8i16,
/* 40015*/              OPC_CheckType, MVT::v8i16,
/* 40017*/              OPC_EmitInteger, MVT::i32, 1, 
/* 40020*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_by_vecs16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1629:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VRSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 40031*/            /*Scope*/ 25, /*->40057*/
/* 40032*/              OPC_CheckInteger, 1, 
/* 40034*/              OPC_MoveParent,
/* 40035*/              OPC_RecordChild6, // #2 = $mask
/* 40036*/              OPC_CheckChild6Type, MVT::v8i1,
/* 40038*/              OPC_RecordChild7, // #3 = $inactive
/* 40039*/              OPC_CheckChild7Type, MVT::v8i16,
/* 40041*/              OPC_CheckType, MVT::v8i16,
/* 40043*/              OPC_EmitInteger, MVT::i32, 1, 
/* 40046*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_by_vecu16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1629:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VRSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 40057*/            0, /*End of Scope*/
/* 40058*/          0, /*End of Scope*/
/* 40059*/        /*Scope*/ 120, /*->40180*/
/* 40060*/          OPC_CheckChild3Integer, 1, 
/* 40062*/          OPC_Scope, 57, /*->40121*/ // 2 children in Scope
/* 40064*/            OPC_CheckChild4Integer, 0, 
/* 40066*/            OPC_MoveChild5,
/* 40067*/            OPC_Scope, 25, /*->40094*/ // 2 children in Scope
/* 40069*/              OPC_CheckInteger, 0, 
/* 40071*/              OPC_MoveParent,
/* 40072*/              OPC_RecordChild6, // #2 = $mask
/* 40073*/              OPC_CheckChild6Type, MVT::v8i1,
/* 40075*/              OPC_RecordChild7, // #3 = $inactive
/* 40076*/              OPC_CheckChild7Type, MVT::v8i16,
/* 40078*/              OPC_CheckType, MVT::v8i16,
/* 40080*/              OPC_EmitInteger, MVT::i32, 1, 
/* 40083*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_by_vecs16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1629:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VQSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 40094*/            /*Scope*/ 25, /*->40120*/
/* 40095*/              OPC_CheckInteger, 1, 
/* 40097*/              OPC_MoveParent,
/* 40098*/              OPC_RecordChild6, // #2 = $mask
/* 40099*/              OPC_CheckChild6Type, MVT::v8i1,
/* 40101*/              OPC_RecordChild7, // #3 = $inactive
/* 40102*/              OPC_CheckChild7Type, MVT::v8i16,
/* 40104*/              OPC_CheckType, MVT::v8i16,
/* 40106*/              OPC_EmitInteger, MVT::i32, 1, 
/* 40109*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_by_vecu16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1629:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VQSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 40120*/            0, /*End of Scope*/
/* 40121*/          /*Scope*/ 57, /*->40179*/
/* 40122*/            OPC_CheckChild4Integer, 1, 
/* 40124*/            OPC_MoveChild5,
/* 40125*/            OPC_Scope, 25, /*->40152*/ // 2 children in Scope
/* 40127*/              OPC_CheckInteger, 0, 
/* 40129*/              OPC_MoveParent,
/* 40130*/              OPC_RecordChild6, // #2 = $mask
/* 40131*/              OPC_CheckChild6Type, MVT::v8i1,
/* 40133*/              OPC_RecordChild7, // #3 = $inactive
/* 40134*/              OPC_CheckChild7Type, MVT::v8i16,
/* 40136*/              OPC_CheckType, MVT::v8i16,
/* 40138*/              OPC_EmitInteger, MVT::i32, 1, 
/* 40141*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_by_vecs16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1629:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VQRSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 40152*/            /*Scope*/ 25, /*->40178*/
/* 40153*/              OPC_CheckInteger, 1, 
/* 40155*/              OPC_MoveParent,
/* 40156*/              OPC_RecordChild6, // #2 = $mask
/* 40157*/              OPC_CheckChild6Type, MVT::v8i1,
/* 40159*/              OPC_RecordChild7, // #3 = $inactive
/* 40160*/              OPC_CheckChild7Type, MVT::v8i16,
/* 40162*/              OPC_CheckType, MVT::v8i16,
/* 40164*/              OPC_EmitInteger, MVT::i32, 1, 
/* 40167*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_by_vecu16), 0,
                            MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1629:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VQRSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, MQPR:{ *:[v8i16] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 40178*/            0, /*End of Scope*/
/* 40179*/          0, /*End of Scope*/
/* 40180*/        0, /*End of Scope*/
/* 40181*/      /*Scope*/ 121|128,1/*249*/, /*->40432*/
/* 40183*/        OPC_CheckChild1Type, MVT::v4i32,
/* 40185*/        OPC_RecordChild2, // #1 = $sh
/* 40186*/        OPC_CheckChild2Type, MVT::v4i32,
/* 40188*/        OPC_Scope, 120, /*->40310*/ // 2 children in Scope
/* 40190*/          OPC_CheckChild3Integer, 0, 
/* 40192*/          OPC_Scope, 57, /*->40251*/ // 2 children in Scope
/* 40194*/            OPC_CheckChild4Integer, 0, 
/* 40196*/            OPC_MoveChild5,
/* 40197*/            OPC_Scope, 25, /*->40224*/ // 2 children in Scope
/* 40199*/              OPC_CheckInteger, 0, 
/* 40201*/              OPC_MoveParent,
/* 40202*/              OPC_RecordChild6, // #2 = $mask
/* 40203*/              OPC_CheckChild6Type, MVT::v4i1,
/* 40205*/              OPC_RecordChild7, // #3 = $inactive
/* 40206*/              OPC_CheckChild7Type, MVT::v4i32,
/* 40208*/              OPC_CheckType, MVT::v4i32,
/* 40210*/              OPC_EmitInteger, MVT::i32, 1, 
/* 40213*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecs32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1629:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 40224*/            /*Scope*/ 25, /*->40250*/
/* 40225*/              OPC_CheckInteger, 1, 
/* 40227*/              OPC_MoveParent,
/* 40228*/              OPC_RecordChild6, // #2 = $mask
/* 40229*/              OPC_CheckChild6Type, MVT::v4i1,
/* 40231*/              OPC_RecordChild7, // #3 = $inactive
/* 40232*/              OPC_CheckChild7Type, MVT::v4i32,
/* 40234*/              OPC_CheckType, MVT::v4i32,
/* 40236*/              OPC_EmitInteger, MVT::i32, 1, 
/* 40239*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecu32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1629:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 40250*/            0, /*End of Scope*/
/* 40251*/          /*Scope*/ 57, /*->40309*/
/* 40252*/            OPC_CheckChild4Integer, 1, 
/* 40254*/            OPC_MoveChild5,
/* 40255*/            OPC_Scope, 25, /*->40282*/ // 2 children in Scope
/* 40257*/              OPC_CheckInteger, 0, 
/* 40259*/              OPC_MoveParent,
/* 40260*/              OPC_RecordChild6, // #2 = $mask
/* 40261*/              OPC_CheckChild6Type, MVT::v4i1,
/* 40263*/              OPC_RecordChild7, // #3 = $inactive
/* 40264*/              OPC_CheckChild7Type, MVT::v4i32,
/* 40266*/              OPC_CheckType, MVT::v4i32,
/* 40268*/              OPC_EmitInteger, MVT::i32, 1, 
/* 40271*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_by_vecs32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1629:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VRSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 40282*/            /*Scope*/ 25, /*->40308*/
/* 40283*/              OPC_CheckInteger, 1, 
/* 40285*/              OPC_MoveParent,
/* 40286*/              OPC_RecordChild6, // #2 = $mask
/* 40287*/              OPC_CheckChild6Type, MVT::v4i1,
/* 40289*/              OPC_RecordChild7, // #3 = $inactive
/* 40290*/              OPC_CheckChild7Type, MVT::v4i32,
/* 40292*/              OPC_CheckType, MVT::v4i32,
/* 40294*/              OPC_EmitInteger, MVT::i32, 1, 
/* 40297*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_by_vecu32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1629:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VRSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 40308*/            0, /*End of Scope*/
/* 40309*/          0, /*End of Scope*/
/* 40310*/        /*Scope*/ 120, /*->40431*/
/* 40311*/          OPC_CheckChild3Integer, 1, 
/* 40313*/          OPC_Scope, 57, /*->40372*/ // 2 children in Scope
/* 40315*/            OPC_CheckChild4Integer, 0, 
/* 40317*/            OPC_MoveChild5,
/* 40318*/            OPC_Scope, 25, /*->40345*/ // 2 children in Scope
/* 40320*/              OPC_CheckInteger, 0, 
/* 40322*/              OPC_MoveParent,
/* 40323*/              OPC_RecordChild6, // #2 = $mask
/* 40324*/              OPC_CheckChild6Type, MVT::v4i1,
/* 40326*/              OPC_RecordChild7, // #3 = $inactive
/* 40327*/              OPC_CheckChild7Type, MVT::v4i32,
/* 40329*/              OPC_CheckType, MVT::v4i32,
/* 40331*/              OPC_EmitInteger, MVT::i32, 1, 
/* 40334*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_by_vecs32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1629:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VQSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 40345*/            /*Scope*/ 25, /*->40371*/
/* 40346*/              OPC_CheckInteger, 1, 
/* 40348*/              OPC_MoveParent,
/* 40349*/              OPC_RecordChild6, // #2 = $mask
/* 40350*/              OPC_CheckChild6Type, MVT::v4i1,
/* 40352*/              OPC_RecordChild7, // #3 = $inactive
/* 40353*/              OPC_CheckChild7Type, MVT::v4i32,
/* 40355*/              OPC_CheckType, MVT::v4i32,
/* 40357*/              OPC_EmitInteger, MVT::i32, 1, 
/* 40360*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_by_vecu32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1629:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VQSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 40371*/            0, /*End of Scope*/
/* 40372*/          /*Scope*/ 57, /*->40430*/
/* 40373*/            OPC_CheckChild4Integer, 1, 
/* 40375*/            OPC_MoveChild5,
/* 40376*/            OPC_Scope, 25, /*->40403*/ // 2 children in Scope
/* 40378*/              OPC_CheckInteger, 0, 
/* 40380*/              OPC_MoveParent,
/* 40381*/              OPC_RecordChild6, // #2 = $mask
/* 40382*/              OPC_CheckChild6Type, MVT::v4i1,
/* 40384*/              OPC_RecordChild7, // #3 = $inactive
/* 40385*/              OPC_CheckChild7Type, MVT::v4i32,
/* 40387*/              OPC_CheckType, MVT::v4i32,
/* 40389*/              OPC_EmitInteger, MVT::i32, 1, 
/* 40392*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_by_vecs32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1629:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VQRSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 40403*/            /*Scope*/ 25, /*->40429*/
/* 40404*/              OPC_CheckInteger, 1, 
/* 40406*/              OPC_MoveParent,
/* 40407*/              OPC_RecordChild6, // #2 = $mask
/* 40408*/              OPC_CheckChild6Type, MVT::v4i1,
/* 40410*/              OPC_RecordChild7, // #3 = $inactive
/* 40411*/              OPC_CheckChild7Type, MVT::v4i32,
/* 40413*/              OPC_CheckType, MVT::v4i32,
/* 40415*/              OPC_EmitInteger, MVT::i32, 1, 
/* 40418*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_by_vecu32), 0,
                            MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1629:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 23
                        // Dst: (MVE_VQRSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, MQPR:{ *:[v4i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 40429*/            0, /*End of Scope*/
/* 40430*/          0, /*End of Scope*/
/* 40431*/        0, /*End of Scope*/
/* 40432*/      0, /*End of Scope*/
/* 40433*/    /*Scope*/ 17|128,5/*657*/, /*->41092*/
/* 40435*/      OPC_CheckChild0Integer, 90|128,12/*1626*/, 
/* 40438*/      OPC_RecordChild1, // #0 = $in
/* 40439*/      OPC_Scope, 87|128,1/*215*/, /*->40657*/ // 3 children in Scope
/* 40442*/        OPC_CheckChild1Type, MVT::v16i8,
/* 40444*/        OPC_RecordChild2, // #1 = $sh
/* 40445*/        OPC_Scope, 104, /*->40551*/ // 2 children in Scope
/* 40447*/          OPC_CheckChild3Integer, 0, 
/* 40449*/          OPC_Scope, 49, /*->40500*/ // 2 children in Scope
/* 40451*/            OPC_CheckChild4Integer, 0, 
/* 40453*/            OPC_MoveChild5,
/* 40454*/            OPC_Scope, 21, /*->40477*/ // 2 children in Scope
/* 40456*/              OPC_CheckInteger, 0, 
/* 40458*/              OPC_MoveParent,
/* 40459*/              OPC_CheckType, MVT::v16i8,
/* 40461*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40464*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40467*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qrs8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1626:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40477*/            /*Scope*/ 21, /*->40499*/
/* 40478*/              OPC_CheckInteger, 1, 
/* 40480*/              OPC_MoveParent,
/* 40481*/              OPC_CheckType, MVT::v16i8,
/* 40483*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40486*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40489*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qru8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1626:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40499*/            0, /*End of Scope*/
/* 40500*/          /*Scope*/ 49, /*->40550*/
/* 40501*/            OPC_CheckChild4Integer, 1, 
/* 40503*/            OPC_MoveChild5,
/* 40504*/            OPC_Scope, 21, /*->40527*/ // 2 children in Scope
/* 40506*/              OPC_CheckInteger, 0, 
/* 40508*/              OPC_MoveParent,
/* 40509*/              OPC_CheckType, MVT::v16i8,
/* 40511*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40514*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40517*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_qrs8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1626:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VRSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40527*/            /*Scope*/ 21, /*->40549*/
/* 40528*/              OPC_CheckInteger, 1, 
/* 40530*/              OPC_MoveParent,
/* 40531*/              OPC_CheckType, MVT::v16i8,
/* 40533*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40536*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40539*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_qru8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1626:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VRSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40549*/            0, /*End of Scope*/
/* 40550*/          0, /*End of Scope*/
/* 40551*/        /*Scope*/ 104, /*->40656*/
/* 40552*/          OPC_CheckChild3Integer, 1, 
/* 40554*/          OPC_Scope, 49, /*->40605*/ // 2 children in Scope
/* 40556*/            OPC_CheckChild4Integer, 0, 
/* 40558*/            OPC_MoveChild5,
/* 40559*/            OPC_Scope, 21, /*->40582*/ // 2 children in Scope
/* 40561*/              OPC_CheckInteger, 0, 
/* 40563*/              OPC_MoveParent,
/* 40564*/              OPC_CheckType, MVT::v16i8,
/* 40566*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40569*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40572*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_qrs8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1626:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40582*/            /*Scope*/ 21, /*->40604*/
/* 40583*/              OPC_CheckInteger, 1, 
/* 40585*/              OPC_MoveParent,
/* 40586*/              OPC_CheckType, MVT::v16i8,
/* 40588*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40591*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40594*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_qru8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1626:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40604*/            0, /*End of Scope*/
/* 40605*/          /*Scope*/ 49, /*->40655*/
/* 40606*/            OPC_CheckChild4Integer, 1, 
/* 40608*/            OPC_MoveChild5,
/* 40609*/            OPC_Scope, 21, /*->40632*/ // 2 children in Scope
/* 40611*/              OPC_CheckInteger, 0, 
/* 40613*/              OPC_MoveParent,
/* 40614*/              OPC_CheckType, MVT::v16i8,
/* 40616*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40619*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40622*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_qrs8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1626:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQRSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40632*/            /*Scope*/ 21, /*->40654*/
/* 40633*/              OPC_CheckInteger, 1, 
/* 40635*/              OPC_MoveParent,
/* 40636*/              OPC_CheckType, MVT::v16i8,
/* 40638*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40641*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40644*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_qru8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1626:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQRSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40654*/            0, /*End of Scope*/
/* 40655*/          0, /*End of Scope*/
/* 40656*/        0, /*End of Scope*/
/* 40657*/      /*Scope*/ 87|128,1/*215*/, /*->40874*/
/* 40659*/        OPC_CheckChild1Type, MVT::v8i16,
/* 40661*/        OPC_RecordChild2, // #1 = $sh
/* 40662*/        OPC_Scope, 104, /*->40768*/ // 2 children in Scope
/* 40664*/          OPC_CheckChild3Integer, 0, 
/* 40666*/          OPC_Scope, 49, /*->40717*/ // 2 children in Scope
/* 40668*/            OPC_CheckChild4Integer, 0, 
/* 40670*/            OPC_MoveChild5,
/* 40671*/            OPC_Scope, 21, /*->40694*/ // 2 children in Scope
/* 40673*/              OPC_CheckInteger, 0, 
/* 40675*/              OPC_MoveParent,
/* 40676*/              OPC_CheckType, MVT::v8i16,
/* 40678*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40681*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40684*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qrs16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1626:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40694*/            /*Scope*/ 21, /*->40716*/
/* 40695*/              OPC_CheckInteger, 1, 
/* 40697*/              OPC_MoveParent,
/* 40698*/              OPC_CheckType, MVT::v8i16,
/* 40700*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40703*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40706*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qru16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1626:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40716*/            0, /*End of Scope*/
/* 40717*/          /*Scope*/ 49, /*->40767*/
/* 40718*/            OPC_CheckChild4Integer, 1, 
/* 40720*/            OPC_MoveChild5,
/* 40721*/            OPC_Scope, 21, /*->40744*/ // 2 children in Scope
/* 40723*/              OPC_CheckInteger, 0, 
/* 40725*/              OPC_MoveParent,
/* 40726*/              OPC_CheckType, MVT::v8i16,
/* 40728*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40731*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40734*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_qrs16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1626:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VRSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40744*/            /*Scope*/ 21, /*->40766*/
/* 40745*/              OPC_CheckInteger, 1, 
/* 40747*/              OPC_MoveParent,
/* 40748*/              OPC_CheckType, MVT::v8i16,
/* 40750*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40753*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40756*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_qru16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1626:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VRSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40766*/            0, /*End of Scope*/
/* 40767*/          0, /*End of Scope*/
/* 40768*/        /*Scope*/ 104, /*->40873*/
/* 40769*/          OPC_CheckChild3Integer, 1, 
/* 40771*/          OPC_Scope, 49, /*->40822*/ // 2 children in Scope
/* 40773*/            OPC_CheckChild4Integer, 0, 
/* 40775*/            OPC_MoveChild5,
/* 40776*/            OPC_Scope, 21, /*->40799*/ // 2 children in Scope
/* 40778*/              OPC_CheckInteger, 0, 
/* 40780*/              OPC_MoveParent,
/* 40781*/              OPC_CheckType, MVT::v8i16,
/* 40783*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40786*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40789*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_qrs16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1626:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40799*/            /*Scope*/ 21, /*->40821*/
/* 40800*/              OPC_CheckInteger, 1, 
/* 40802*/              OPC_MoveParent,
/* 40803*/              OPC_CheckType, MVT::v8i16,
/* 40805*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40808*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40811*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_qru16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1626:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40821*/            0, /*End of Scope*/
/* 40822*/          /*Scope*/ 49, /*->40872*/
/* 40823*/            OPC_CheckChild4Integer, 1, 
/* 40825*/            OPC_MoveChild5,
/* 40826*/            OPC_Scope, 21, /*->40849*/ // 2 children in Scope
/* 40828*/              OPC_CheckInteger, 0, 
/* 40830*/              OPC_MoveParent,
/* 40831*/              OPC_CheckType, MVT::v8i16,
/* 40833*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40836*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40839*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_qrs16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1626:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQRSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40849*/            /*Scope*/ 21, /*->40871*/
/* 40850*/              OPC_CheckInteger, 1, 
/* 40852*/              OPC_MoveParent,
/* 40853*/              OPC_CheckType, MVT::v8i16,
/* 40855*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40858*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40861*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_qru16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1626:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQRSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40871*/            0, /*End of Scope*/
/* 40872*/          0, /*End of Scope*/
/* 40873*/        0, /*End of Scope*/
/* 40874*/      /*Scope*/ 87|128,1/*215*/, /*->41091*/
/* 40876*/        OPC_CheckChild1Type, MVT::v4i32,
/* 40878*/        OPC_RecordChild2, // #1 = $sh
/* 40879*/        OPC_Scope, 104, /*->40985*/ // 2 children in Scope
/* 40881*/          OPC_CheckChild3Integer, 0, 
/* 40883*/          OPC_Scope, 49, /*->40934*/ // 2 children in Scope
/* 40885*/            OPC_CheckChild4Integer, 0, 
/* 40887*/            OPC_MoveChild5,
/* 40888*/            OPC_Scope, 21, /*->40911*/ // 2 children in Scope
/* 40890*/              OPC_CheckInteger, 0, 
/* 40892*/              OPC_MoveParent,
/* 40893*/              OPC_CheckType, MVT::v4i32,
/* 40895*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40898*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40901*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qrs32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1626:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40911*/            /*Scope*/ 21, /*->40933*/
/* 40912*/              OPC_CheckInteger, 1, 
/* 40914*/              OPC_MoveParent,
/* 40915*/              OPC_CheckType, MVT::v4i32,
/* 40917*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40920*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40923*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qru32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1626:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40933*/            0, /*End of Scope*/
/* 40934*/          /*Scope*/ 49, /*->40984*/
/* 40935*/            OPC_CheckChild4Integer, 1, 
/* 40937*/            OPC_MoveChild5,
/* 40938*/            OPC_Scope, 21, /*->40961*/ // 2 children in Scope
/* 40940*/              OPC_CheckInteger, 0, 
/* 40942*/              OPC_MoveParent,
/* 40943*/              OPC_CheckType, MVT::v4i32,
/* 40945*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40948*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40951*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_qrs32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1626:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VRSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40961*/            /*Scope*/ 21, /*->40983*/
/* 40962*/              OPC_CheckInteger, 1, 
/* 40964*/              OPC_MoveParent,
/* 40965*/              OPC_CheckType, MVT::v4i32,
/* 40967*/              OPC_EmitInteger, MVT::i32, 0, 
/* 40970*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 40973*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_qru32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1626:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VRSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
/* 40983*/            0, /*End of Scope*/
/* 40984*/          0, /*End of Scope*/
/* 40985*/        /*Scope*/ 104, /*->41090*/
/* 40986*/          OPC_CheckChild3Integer, 1, 
/* 40988*/          OPC_Scope, 49, /*->41039*/ // 2 children in Scope
/* 40990*/            OPC_CheckChild4Integer, 0, 
/* 40992*/            OPC_MoveChild5,
/* 40993*/            OPC_Scope, 21, /*->41016*/ // 2 children in Scope
/* 40995*/              OPC_CheckInteger, 0, 
/* 40997*/              OPC_MoveParent,
/* 40998*/              OPC_CheckType, MVT::v4i32,
/* 41000*/              OPC_EmitInteger, MVT::i32, 0, 
/* 41003*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41006*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_qrs32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1626:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
/* 41016*/            /*Scope*/ 21, /*->41038*/
/* 41017*/              OPC_CheckInteger, 1, 
/* 41019*/              OPC_MoveParent,
/* 41020*/              OPC_CheckType, MVT::v4i32,
/* 41022*/              OPC_EmitInteger, MVT::i32, 0, 
/* 41025*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41028*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_qru32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1626:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
/* 41038*/            0, /*End of Scope*/
/* 41039*/          /*Scope*/ 49, /*->41089*/
/* 41040*/            OPC_CheckChild4Integer, 1, 
/* 41042*/            OPC_MoveChild5,
/* 41043*/            OPC_Scope, 21, /*->41066*/ // 2 children in Scope
/* 41045*/              OPC_CheckInteger, 0, 
/* 41047*/              OPC_MoveParent,
/* 41048*/              OPC_CheckType, MVT::v4i32,
/* 41050*/              OPC_EmitInteger, MVT::i32, 0, 
/* 41053*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41056*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_qrs32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1626:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQRSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
/* 41066*/            /*Scope*/ 21, /*->41088*/
/* 41067*/              OPC_CheckInteger, 1, 
/* 41069*/              OPC_MoveParent,
/* 41070*/              OPC_CheckType, MVT::v4i32,
/* 41072*/              OPC_EmitInteger, MVT::i32, 0, 
/* 41075*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 41078*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_qru32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1626:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VQRSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh)
/* 41088*/            0, /*End of Scope*/
/* 41089*/          0, /*End of Scope*/
/* 41090*/        0, /*End of Scope*/
/* 41091*/      0, /*End of Scope*/
/* 41092*/    /*Scope*/ 17|128,5/*657*/, /*->41751*/
/* 41094*/      OPC_CheckChild0Integer, 91|128,12/*1627*/, 
/* 41097*/      OPC_RecordChild1, // #0 = $in
/* 41098*/      OPC_Scope, 87|128,1/*215*/, /*->41316*/ // 3 children in Scope
/* 41101*/        OPC_CheckChild1Type, MVT::v16i8,
/* 41103*/        OPC_RecordChild2, // #1 = $sh
/* 41104*/        OPC_Scope, 104, /*->41210*/ // 2 children in Scope
/* 41106*/          OPC_CheckChild3Integer, 0, 
/* 41108*/          OPC_Scope, 49, /*->41159*/ // 2 children in Scope
/* 41110*/            OPC_CheckChild4Integer, 0, 
/* 41112*/            OPC_MoveChild5,
/* 41113*/            OPC_Scope, 21, /*->41136*/ // 2 children in Scope
/* 41115*/              OPC_CheckInteger, 0, 
/* 41117*/              OPC_MoveParent,
/* 41118*/              OPC_RecordChild6, // #2 = $mask
/* 41119*/              OPC_CheckChild6Type, MVT::v16i1,
/* 41121*/              OPC_CheckType, MVT::v16i8,
/* 41123*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41126*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qrs8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1627:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 41136*/            /*Scope*/ 21, /*->41158*/
/* 41137*/              OPC_CheckInteger, 1, 
/* 41139*/              OPC_MoveParent,
/* 41140*/              OPC_RecordChild6, // #2 = $mask
/* 41141*/              OPC_CheckChild6Type, MVT::v16i1,
/* 41143*/              OPC_CheckType, MVT::v16i8,
/* 41145*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41148*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qru8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1627:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 41158*/            0, /*End of Scope*/
/* 41159*/          /*Scope*/ 49, /*->41209*/
/* 41160*/            OPC_CheckChild4Integer, 1, 
/* 41162*/            OPC_MoveChild5,
/* 41163*/            OPC_Scope, 21, /*->41186*/ // 2 children in Scope
/* 41165*/              OPC_CheckInteger, 0, 
/* 41167*/              OPC_MoveParent,
/* 41168*/              OPC_RecordChild6, // #2 = $mask
/* 41169*/              OPC_CheckChild6Type, MVT::v16i1,
/* 41171*/              OPC_CheckType, MVT::v16i8,
/* 41173*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41176*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_qrs8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1627:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VRSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 41186*/            /*Scope*/ 21, /*->41208*/
/* 41187*/              OPC_CheckInteger, 1, 
/* 41189*/              OPC_MoveParent,
/* 41190*/              OPC_RecordChild6, // #2 = $mask
/* 41191*/              OPC_CheckChild6Type, MVT::v16i1,
/* 41193*/              OPC_CheckType, MVT::v16i8,
/* 41195*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41198*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_qru8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1627:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VRSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 41208*/            0, /*End of Scope*/
/* 41209*/          0, /*End of Scope*/
/* 41210*/        /*Scope*/ 104, /*->41315*/
/* 41211*/          OPC_CheckChild3Integer, 1, 
/* 41213*/          OPC_Scope, 49, /*->41264*/ // 2 children in Scope
/* 41215*/            OPC_CheckChild4Integer, 0, 
/* 41217*/            OPC_MoveChild5,
/* 41218*/            OPC_Scope, 21, /*->41241*/ // 2 children in Scope
/* 41220*/              OPC_CheckInteger, 0, 
/* 41222*/              OPC_MoveParent,
/* 41223*/              OPC_RecordChild6, // #2 = $mask
/* 41224*/              OPC_CheckChild6Type, MVT::v16i1,
/* 41226*/              OPC_CheckType, MVT::v16i8,
/* 41228*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41231*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_qrs8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1627:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VQSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 41241*/            /*Scope*/ 21, /*->41263*/
/* 41242*/              OPC_CheckInteger, 1, 
/* 41244*/              OPC_MoveParent,
/* 41245*/              OPC_RecordChild6, // #2 = $mask
/* 41246*/              OPC_CheckChild6Type, MVT::v16i1,
/* 41248*/              OPC_CheckType, MVT::v16i8,
/* 41250*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41253*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_qru8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1627:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VQSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 41263*/            0, /*End of Scope*/
/* 41264*/          /*Scope*/ 49, /*->41314*/
/* 41265*/            OPC_CheckChild4Integer, 1, 
/* 41267*/            OPC_MoveChild5,
/* 41268*/            OPC_Scope, 21, /*->41291*/ // 2 children in Scope
/* 41270*/              OPC_CheckInteger, 0, 
/* 41272*/              OPC_MoveParent,
/* 41273*/              OPC_RecordChild6, // #2 = $mask
/* 41274*/              OPC_CheckChild6Type, MVT::v16i1,
/* 41276*/              OPC_CheckType, MVT::v16i8,
/* 41278*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41281*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_qrs8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1627:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VQRSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 41291*/            /*Scope*/ 21, /*->41313*/
/* 41292*/              OPC_CheckInteger, 1, 
/* 41294*/              OPC_MoveParent,
/* 41295*/              OPC_RecordChild6, // #2 = $mask
/* 41296*/              OPC_CheckChild6Type, MVT::v16i1,
/* 41298*/              OPC_CheckType, MVT::v16i8,
/* 41300*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41303*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_qru8), 0,
                            MVT::v16i8, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1627:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VQRSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask)
/* 41313*/            0, /*End of Scope*/
/* 41314*/          0, /*End of Scope*/
/* 41315*/        0, /*End of Scope*/
/* 41316*/      /*Scope*/ 87|128,1/*215*/, /*->41533*/
/* 41318*/        OPC_CheckChild1Type, MVT::v8i16,
/* 41320*/        OPC_RecordChild2, // #1 = $sh
/* 41321*/        OPC_Scope, 104, /*->41427*/ // 2 children in Scope
/* 41323*/          OPC_CheckChild3Integer, 0, 
/* 41325*/          OPC_Scope, 49, /*->41376*/ // 2 children in Scope
/* 41327*/            OPC_CheckChild4Integer, 0, 
/* 41329*/            OPC_MoveChild5,
/* 41330*/            OPC_Scope, 21, /*->41353*/ // 2 children in Scope
/* 41332*/              OPC_CheckInteger, 0, 
/* 41334*/              OPC_MoveParent,
/* 41335*/              OPC_RecordChild6, // #2 = $mask
/* 41336*/              OPC_CheckChild6Type, MVT::v8i1,
/* 41338*/              OPC_CheckType, MVT::v8i16,
/* 41340*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41343*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qrs16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1627:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 41353*/            /*Scope*/ 21, /*->41375*/
/* 41354*/              OPC_CheckInteger, 1, 
/* 41356*/              OPC_MoveParent,
/* 41357*/              OPC_RecordChild6, // #2 = $mask
/* 41358*/              OPC_CheckChild6Type, MVT::v8i1,
/* 41360*/              OPC_CheckType, MVT::v8i16,
/* 41362*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41365*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qru16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1627:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 41375*/            0, /*End of Scope*/
/* 41376*/          /*Scope*/ 49, /*->41426*/
/* 41377*/            OPC_CheckChild4Integer, 1, 
/* 41379*/            OPC_MoveChild5,
/* 41380*/            OPC_Scope, 21, /*->41403*/ // 2 children in Scope
/* 41382*/              OPC_CheckInteger, 0, 
/* 41384*/              OPC_MoveParent,
/* 41385*/              OPC_RecordChild6, // #2 = $mask
/* 41386*/              OPC_CheckChild6Type, MVT::v8i1,
/* 41388*/              OPC_CheckType, MVT::v8i16,
/* 41390*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41393*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_qrs16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1627:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VRSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 41403*/            /*Scope*/ 21, /*->41425*/
/* 41404*/              OPC_CheckInteger, 1, 
/* 41406*/              OPC_MoveParent,
/* 41407*/              OPC_RecordChild6, // #2 = $mask
/* 41408*/              OPC_CheckChild6Type, MVT::v8i1,
/* 41410*/              OPC_CheckType, MVT::v8i16,
/* 41412*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41415*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_qru16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1627:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VRSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 41425*/            0, /*End of Scope*/
/* 41426*/          0, /*End of Scope*/
/* 41427*/        /*Scope*/ 104, /*->41532*/
/* 41428*/          OPC_CheckChild3Integer, 1, 
/* 41430*/          OPC_Scope, 49, /*->41481*/ // 2 children in Scope
/* 41432*/            OPC_CheckChild4Integer, 0, 
/* 41434*/            OPC_MoveChild5,
/* 41435*/            OPC_Scope, 21, /*->41458*/ // 2 children in Scope
/* 41437*/              OPC_CheckInteger, 0, 
/* 41439*/              OPC_MoveParent,
/* 41440*/              OPC_RecordChild6, // #2 = $mask
/* 41441*/              OPC_CheckChild6Type, MVT::v8i1,
/* 41443*/              OPC_CheckType, MVT::v8i16,
/* 41445*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41448*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_qrs16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1627:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VQSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 41458*/            /*Scope*/ 21, /*->41480*/
/* 41459*/              OPC_CheckInteger, 1, 
/* 41461*/              OPC_MoveParent,
/* 41462*/              OPC_RecordChild6, // #2 = $mask
/* 41463*/              OPC_CheckChild6Type, MVT::v8i1,
/* 41465*/              OPC_CheckType, MVT::v8i16,
/* 41467*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41470*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_qru16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1627:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VQSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 41480*/            0, /*End of Scope*/
/* 41481*/          /*Scope*/ 49, /*->41531*/
/* 41482*/            OPC_CheckChild4Integer, 1, 
/* 41484*/            OPC_MoveChild5,
/* 41485*/            OPC_Scope, 21, /*->41508*/ // 2 children in Scope
/* 41487*/              OPC_CheckInteger, 0, 
/* 41489*/              OPC_MoveParent,
/* 41490*/              OPC_RecordChild6, // #2 = $mask
/* 41491*/              OPC_CheckChild6Type, MVT::v8i1,
/* 41493*/              OPC_CheckType, MVT::v8i16,
/* 41495*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41498*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_qrs16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1627:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VQRSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 41508*/            /*Scope*/ 21, /*->41530*/
/* 41509*/              OPC_CheckInteger, 1, 
/* 41511*/              OPC_MoveParent,
/* 41512*/              OPC_RecordChild6, // #2 = $mask
/* 41513*/              OPC_CheckChild6Type, MVT::v8i1,
/* 41515*/              OPC_CheckType, MVT::v8i16,
/* 41517*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41520*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_qru16), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1627:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VQRSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 41530*/            0, /*End of Scope*/
/* 41531*/          0, /*End of Scope*/
/* 41532*/        0, /*End of Scope*/
/* 41533*/      /*Scope*/ 87|128,1/*215*/, /*->41750*/
/* 41535*/        OPC_CheckChild1Type, MVT::v4i32,
/* 41537*/        OPC_RecordChild2, // #1 = $sh
/* 41538*/        OPC_Scope, 104, /*->41644*/ // 2 children in Scope
/* 41540*/          OPC_CheckChild3Integer, 0, 
/* 41542*/          OPC_Scope, 49, /*->41593*/ // 2 children in Scope
/* 41544*/            OPC_CheckChild4Integer, 0, 
/* 41546*/            OPC_MoveChild5,
/* 41547*/            OPC_Scope, 21, /*->41570*/ // 2 children in Scope
/* 41549*/              OPC_CheckInteger, 0, 
/* 41551*/              OPC_MoveParent,
/* 41552*/              OPC_RecordChild6, // #2 = $mask
/* 41553*/              OPC_CheckChild6Type, MVT::v4i1,
/* 41555*/              OPC_CheckType, MVT::v4i32,
/* 41557*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41560*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qrs32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1627:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 41570*/            /*Scope*/ 21, /*->41592*/
/* 41571*/              OPC_CheckInteger, 1, 
/* 41573*/              OPC_MoveParent,
/* 41574*/              OPC_RecordChild6, // #2 = $mask
/* 41575*/              OPC_CheckChild6Type, MVT::v4i1,
/* 41577*/              OPC_CheckType, MVT::v4i32,
/* 41579*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41582*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qru32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1627:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 41592*/            0, /*End of Scope*/
/* 41593*/          /*Scope*/ 49, /*->41643*/
/* 41594*/            OPC_CheckChild4Integer, 1, 
/* 41596*/            OPC_MoveChild5,
/* 41597*/            OPC_Scope, 21, /*->41620*/ // 2 children in Scope
/* 41599*/              OPC_CheckInteger, 0, 
/* 41601*/              OPC_MoveParent,
/* 41602*/              OPC_RecordChild6, // #2 = $mask
/* 41603*/              OPC_CheckChild6Type, MVT::v4i1,
/* 41605*/              OPC_CheckType, MVT::v4i32,
/* 41607*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41610*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_qrs32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1627:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VRSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 41620*/            /*Scope*/ 21, /*->41642*/
/* 41621*/              OPC_CheckInteger, 1, 
/* 41623*/              OPC_MoveParent,
/* 41624*/              OPC_RecordChild6, // #2 = $mask
/* 41625*/              OPC_CheckChild6Type, MVT::v4i1,
/* 41627*/              OPC_CheckType, MVT::v4i32,
/* 41629*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41632*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHL_qru32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1627:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 0:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VRSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 41642*/            0, /*End of Scope*/
/* 41643*/          0, /*End of Scope*/
/* 41644*/        /*Scope*/ 104, /*->41749*/
/* 41645*/          OPC_CheckChild3Integer, 1, 
/* 41647*/          OPC_Scope, 49, /*->41698*/ // 2 children in Scope
/* 41649*/            OPC_CheckChild4Integer, 0, 
/* 41651*/            OPC_MoveChild5,
/* 41652*/            OPC_Scope, 21, /*->41675*/ // 2 children in Scope
/* 41654*/              OPC_CheckInteger, 0, 
/* 41656*/              OPC_MoveParent,
/* 41657*/              OPC_RecordChild6, // #2 = $mask
/* 41658*/              OPC_CheckChild6Type, MVT::v4i1,
/* 41660*/              OPC_CheckType, MVT::v4i32,
/* 41662*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41665*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_qrs32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1627:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VQSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 41675*/            /*Scope*/ 21, /*->41697*/
/* 41676*/              OPC_CheckInteger, 1, 
/* 41678*/              OPC_MoveParent,
/* 41679*/              OPC_RecordChild6, // #2 = $mask
/* 41680*/              OPC_CheckChild6Type, MVT::v4i1,
/* 41682*/              OPC_CheckType, MVT::v4i32,
/* 41684*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41687*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHL_qru32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1627:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VQSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 41697*/            0, /*End of Scope*/
/* 41698*/          /*Scope*/ 49, /*->41748*/
/* 41699*/            OPC_CheckChild4Integer, 1, 
/* 41701*/            OPC_MoveChild5,
/* 41702*/            OPC_Scope, 21, /*->41725*/ // 2 children in Scope
/* 41704*/              OPC_CheckInteger, 0, 
/* 41706*/              OPC_MoveParent,
/* 41707*/              OPC_RecordChild6, // #2 = $mask
/* 41708*/              OPC_CheckChild6Type, MVT::v4i1,
/* 41710*/              OPC_CheckType, MVT::v4i32,
/* 41712*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41715*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_qrs32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1627:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VQRSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 41725*/            /*Scope*/ 21, /*->41747*/
/* 41726*/              OPC_CheckInteger, 1, 
/* 41728*/              OPC_MoveParent,
/* 41729*/              OPC_RecordChild6, // #2 = $mask
/* 41730*/              OPC_CheckChild6Type, MVT::v4i1,
/* 41732*/              OPC_CheckType, MVT::v4i32,
/* 41734*/              OPC_EmitInteger, MVT::i32, 1, 
/* 41737*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRSHL_qru32), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 3, 2, 
                        // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1627:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask) - Complexity = 23
                        // Dst: (MVE_VQRSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$in, rGPR:{ *:[i32] }:$sh, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 41747*/            0, /*End of Scope*/
/* 41748*/          0, /*End of Scope*/
/* 41749*/        0, /*End of Scope*/
/* 41750*/      0, /*End of Scope*/
/* 41751*/    /*Scope*/ 19|128,1/*147*/, /*->41900*/
/* 41753*/      OPC_CheckChild0Integer, 125|128,12/*1661*/, 
/* 41756*/      OPC_RecordChild1, // #0 = $Vd
/* 41757*/      OPC_Scope, 64, /*->41823*/ // 2 children in Scope
/* 41759*/        OPC_CheckChild1Type, MVT::v2i32,
/* 41761*/        OPC_RecordChild2, // #1 = $Vn
/* 41762*/        OPC_CheckChild2Type, MVT::v8i8,
/* 41764*/        OPC_Scope, 39, /*->41805*/ // 2 children in Scope
/* 41766*/          OPC_MoveChild3,
/* 41767*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41770*/          OPC_MoveChild0,
/* 41771*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 41774*/          OPC_RecordChild0, // #2 = $Vm
/* 41775*/          OPC_CheckChild0Type, MVT::v2i32,
/* 41777*/          OPC_RecordChild1, // #3 = $lane
/* 41778*/          OPC_MoveChild1,
/* 41779*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 41782*/          OPC_CheckPredicate, 36, // Predicate_VectorIndex32
/* 41784*/          OPC_MoveParent,
/* 41785*/          OPC_CheckType, MVT::v2i32,
/* 41787*/          OPC_MoveParent,
/* 41788*/          OPC_CheckType, MVT::v8i8,
/* 41790*/          OPC_MoveParent,
/* 41791*/          OPC_CheckType, MVT::v2i32,
/* 41793*/          OPC_EmitConvertToTarget, 3,
/* 41795*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VUDOTDI), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1661:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, (bitconvert:{ *:[v8i8] } (ARMvduplane:{ *:[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)
/* 41805*/        /*Scope*/ 16, /*->41822*/
/* 41806*/          OPC_RecordChild3, // #2 = $Vm
/* 41807*/          OPC_CheckChild3Type, MVT::v8i8,
/* 41809*/          OPC_CheckType, MVT::v2i32,
/* 41811*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasDotProd())
/* 41813*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VUDOTD), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1661:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                    // Dst: (VUDOTD:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 41822*/        0, /*End of Scope*/
/* 41823*/      /*Scope*/ 75, /*->41899*/
/* 41824*/        OPC_CheckChild1Type, MVT::v4i32,
/* 41826*/        OPC_RecordChild2, // #1 = $Vn
/* 41827*/        OPC_CheckChild2Type, MVT::v16i8,
/* 41829*/        OPC_Scope, 50, /*->41881*/ // 2 children in Scope
/* 41831*/          OPC_MoveChild3,
/* 41832*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41835*/          OPC_MoveChild0,
/* 41836*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 41839*/          OPC_RecordChild0, // #2 = $Vm
/* 41840*/          OPC_CheckChild0Type, MVT::v4i32,
/* 41842*/          OPC_RecordChild1, // #3 = $lane
/* 41843*/          OPC_MoveChild1,
/* 41844*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 41847*/          OPC_CheckPredicate, 36, // Predicate_VectorIndex32
/* 41849*/          OPC_MoveParent,
/* 41850*/          OPC_CheckType, MVT::v4i32,
/* 41852*/          OPC_MoveParent,
/* 41853*/          OPC_CheckType, MVT::v16i8,
/* 41855*/          OPC_MoveParent,
/* 41856*/          OPC_CheckType, MVT::v4i32,
/* 41858*/          OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 41861*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 4,  // Results = #5
/* 41869*/          OPC_EmitConvertToTarget, 3,
/* 41871*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VUDOTQI), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1661:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, (bitconvert:{ *:[v16i8] } (ARMvduplane:{ *:[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)
/* 41881*/        /*Scope*/ 16, /*->41898*/
/* 41882*/          OPC_RecordChild3, // #2 = $Vm
/* 41883*/          OPC_CheckChild3Type, MVT::v16i8,
/* 41885*/          OPC_CheckType, MVT::v4i32,
/* 41887*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasDotProd())
/* 41889*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VUDOTQ), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1661:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                    // Dst: (VUDOTQ:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 41898*/        0, /*End of Scope*/
/* 41899*/      0, /*End of Scope*/
/* 41900*/    /*Scope*/ 19|128,1/*147*/, /*->42049*/
/* 41902*/      OPC_CheckChild0Integer, 114|128,12/*1650*/, 
/* 41905*/      OPC_RecordChild1, // #0 = $Vd
/* 41906*/      OPC_Scope, 64, /*->41972*/ // 2 children in Scope
/* 41908*/        OPC_CheckChild1Type, MVT::v2i32,
/* 41910*/        OPC_RecordChild2, // #1 = $Vn
/* 41911*/        OPC_CheckChild2Type, MVT::v8i8,
/* 41913*/        OPC_Scope, 39, /*->41954*/ // 2 children in Scope
/* 41915*/          OPC_MoveChild3,
/* 41916*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41919*/          OPC_MoveChild0,
/* 41920*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 41923*/          OPC_RecordChild0, // #2 = $Vm
/* 41924*/          OPC_CheckChild0Type, MVT::v2i32,
/* 41926*/          OPC_RecordChild1, // #3 = $lane
/* 41927*/          OPC_MoveChild1,
/* 41928*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 41931*/          OPC_CheckPredicate, 36, // Predicate_VectorIndex32
/* 41933*/          OPC_MoveParent,
/* 41934*/          OPC_CheckType, MVT::v2i32,
/* 41936*/          OPC_MoveParent,
/* 41937*/          OPC_CheckType, MVT::v8i8,
/* 41939*/          OPC_MoveParent,
/* 41940*/          OPC_CheckType, MVT::v2i32,
/* 41942*/          OPC_EmitConvertToTarget, 3,
/* 41944*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSDOTDI), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1650:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, (bitconvert:{ *:[v8i8] } (ARMvduplane:{ *:[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)
/* 41954*/        /*Scope*/ 16, /*->41971*/
/* 41955*/          OPC_RecordChild3, // #2 = $Vm
/* 41956*/          OPC_CheckChild3Type, MVT::v8i8,
/* 41958*/          OPC_CheckType, MVT::v2i32,
/* 41960*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasDotProd())
/* 41962*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSDOTD), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1650:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                    // Dst: (VSDOTD:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vd, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 41971*/        0, /*End of Scope*/
/* 41972*/      /*Scope*/ 75, /*->42048*/
/* 41973*/        OPC_CheckChild1Type, MVT::v4i32,
/* 41975*/        OPC_RecordChild2, // #1 = $Vn
/* 41976*/        OPC_CheckChild2Type, MVT::v16i8,
/* 41978*/        OPC_Scope, 50, /*->42030*/ // 2 children in Scope
/* 41980*/          OPC_MoveChild3,
/* 41981*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 41984*/          OPC_MoveChild0,
/* 41985*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 41988*/          OPC_RecordChild0, // #2 = $Vm
/* 41989*/          OPC_CheckChild0Type, MVT::v4i32,
/* 41991*/          OPC_RecordChild1, // #3 = $lane
/* 41992*/          OPC_MoveChild1,
/* 41993*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 41996*/          OPC_CheckPredicate, 36, // Predicate_VectorIndex32
/* 41998*/          OPC_MoveParent,
/* 41999*/          OPC_CheckType, MVT::v4i32,
/* 42001*/          OPC_MoveParent,
/* 42002*/          OPC_CheckType, MVT::v16i8,
/* 42004*/          OPC_MoveParent,
/* 42005*/          OPC_CheckType, MVT::v4i32,
/* 42007*/          OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 42010*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f64, 2/*#Ops*/, 2, 4,  // Results = #5
/* 42018*/          OPC_EmitConvertToTarget, 3,
/* 42020*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSDOTQI), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1650:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, (bitconvert:{ *:[v16i8] } (ARMvduplane:{ *:[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)
/* 42030*/        /*Scope*/ 16, /*->42047*/
/* 42031*/          OPC_RecordChild3, // #2 = $Vm
/* 42032*/          OPC_CheckChild3Type, MVT::v16i8,
/* 42034*/          OPC_CheckType, MVT::v4i32,
/* 42036*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasDotProd())
/* 42038*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSDOTQ), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1650:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                    // Dst: (VSDOTQ:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vd, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 42047*/        0, /*End of Scope*/
/* 42048*/      0, /*End of Scope*/
/* 42049*/    /*Scope*/ 18|128,3/*402*/, /*->42453*/
/* 42051*/      OPC_CheckChild0Integer, 76|128,12/*1612*/, 
/* 42054*/      OPC_RecordChild1, // #0 = $Qm
/* 42055*/      OPC_SwitchType /*3 cases */, 1|128,1/*129*/, MVT::v8i16,// ->42188
/* 42059*/        OPC_CheckChild1Type, MVT::v16i8,
/* 42061*/        OPC_RecordChild2, // #1 = $Qn
/* 42062*/        OPC_CheckChild2Type, MVT::v16i8,
/* 42064*/        OPC_Scope, 60, /*->42126*/ // 2 children in Scope
/* 42066*/          OPC_CheckChild3Integer, 0, 
/* 42068*/          OPC_Scope, 27, /*->42097*/ // 2 children in Scope
/* 42070*/            OPC_CheckChild4Integer, 0, 
/* 42072*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42074*/            OPC_EmitInteger, MVT::i32, 0, 
/* 42077*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42080*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 42086*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBs8), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1612:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VMULLBs8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 42097*/          /*Scope*/ 27, /*->42125*/
/* 42098*/            OPC_CheckChild4Integer, 1, 
/* 42100*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42102*/            OPC_EmitInteger, MVT::i32, 0, 
/* 42105*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42108*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 42114*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTs8), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1612:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VMULLTs8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 42125*/          0, /*End of Scope*/
/* 42126*/        /*Scope*/ 60, /*->42187*/
/* 42127*/          OPC_CheckChild3Integer, 1, 
/* 42129*/          OPC_Scope, 27, /*->42158*/ // 2 children in Scope
/* 42131*/            OPC_CheckChild4Integer, 0, 
/* 42133*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42135*/            OPC_EmitInteger, MVT::i32, 0, 
/* 42138*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42141*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 42147*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBu8), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1612:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VMULLBu8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 42158*/          /*Scope*/ 27, /*->42186*/
/* 42159*/            OPC_CheckChild4Integer, 1, 
/* 42161*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42163*/            OPC_EmitInteger, MVT::i32, 0, 
/* 42166*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42169*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 42175*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTu8), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1612:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VMULLTu8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 42186*/          0, /*End of Scope*/
/* 42187*/        0, /*End of Scope*/
/* 42188*/      /*SwitchType*/ 1|128,1/*129*/, MVT::v4i32,// ->42320
/* 42191*/        OPC_CheckChild1Type, MVT::v8i16,
/* 42193*/        OPC_RecordChild2, // #1 = $Qn
/* 42194*/        OPC_CheckChild2Type, MVT::v8i16,
/* 42196*/        OPC_Scope, 60, /*->42258*/ // 2 children in Scope
/* 42198*/          OPC_CheckChild3Integer, 0, 
/* 42200*/          OPC_Scope, 27, /*->42229*/ // 2 children in Scope
/* 42202*/            OPC_CheckChild4Integer, 0, 
/* 42204*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42206*/            OPC_EmitInteger, MVT::i32, 0, 
/* 42209*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42212*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 42218*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBs16), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1612:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VMULLBs16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 42229*/          /*Scope*/ 27, /*->42257*/
/* 42230*/            OPC_CheckChild4Integer, 1, 
/* 42232*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42234*/            OPC_EmitInteger, MVT::i32, 0, 
/* 42237*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42240*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 42246*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTs16), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1612:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VMULLTs16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 42257*/          0, /*End of Scope*/
/* 42258*/        /*Scope*/ 60, /*->42319*/
/* 42259*/          OPC_CheckChild3Integer, 1, 
/* 42261*/          OPC_Scope, 27, /*->42290*/ // 2 children in Scope
/* 42263*/            OPC_CheckChild4Integer, 0, 
/* 42265*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42267*/            OPC_EmitInteger, MVT::i32, 0, 
/* 42270*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42273*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 42279*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBu16), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1612:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VMULLBu16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 42290*/          /*Scope*/ 27, /*->42318*/
/* 42291*/            OPC_CheckChild4Integer, 1, 
/* 42293*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42295*/            OPC_EmitInteger, MVT::i32, 0, 
/* 42298*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42301*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 42307*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTu16), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1612:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VMULLTu16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 42318*/          0, /*End of Scope*/
/* 42319*/        0, /*End of Scope*/
/* 42320*/      /*SwitchType*/ 1|128,1/*129*/, MVT::v2i64,// ->42452
/* 42323*/        OPC_CheckChild1Type, MVT::v4i32,
/* 42325*/        OPC_RecordChild2, // #1 = $Qn
/* 42326*/        OPC_CheckChild2Type, MVT::v4i32,
/* 42328*/        OPC_Scope, 60, /*->42390*/ // 2 children in Scope
/* 42330*/          OPC_CheckChild3Integer, 0, 
/* 42332*/          OPC_Scope, 27, /*->42361*/ // 2 children in Scope
/* 42334*/            OPC_CheckChild4Integer, 0, 
/* 42336*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42338*/            OPC_EmitInteger, MVT::i32, 0, 
/* 42341*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42344*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 42350*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBs32), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1612:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VMULLBs32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 42361*/          /*Scope*/ 27, /*->42389*/
/* 42362*/            OPC_CheckChild4Integer, 1, 
/* 42364*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42366*/            OPC_EmitInteger, MVT::i32, 0, 
/* 42369*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42372*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 42378*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTs32), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1612:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VMULLTs32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 42389*/          0, /*End of Scope*/
/* 42390*/        /*Scope*/ 60, /*->42451*/
/* 42391*/          OPC_CheckChild3Integer, 1, 
/* 42393*/          OPC_Scope, 27, /*->42422*/ // 2 children in Scope
/* 42395*/            OPC_CheckChild4Integer, 0, 
/* 42397*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42399*/            OPC_EmitInteger, MVT::i32, 0, 
/* 42402*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42405*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 42411*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBu32), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1612:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VMULLBu32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 42422*/          /*Scope*/ 27, /*->42450*/
/* 42423*/            OPC_CheckChild4Integer, 1, 
/* 42425*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42427*/            OPC_EmitInteger, MVT::i32, 0, 
/* 42430*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42433*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 42439*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTu32), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1612:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VMULLTu32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 42450*/          0, /*End of Scope*/
/* 42451*/        0, /*End of Scope*/
/* 42452*/      0, // EndSwitchType
/* 42453*/    /*Scope*/ 107|128,2/*363*/, /*->42818*/
/* 42455*/      OPC_CheckChild0Integer, 17|128,12/*1553*/, 
/* 42458*/      OPC_RecordChild1, // #0 = $Qm
/* 42459*/      OPC_SwitchType /*3 cases */, 117, MVT::v8i16,// ->42579
/* 42462*/        OPC_CheckChild1Type, MVT::v16i8,
/* 42464*/        OPC_RecordChild2, // #1 = $Qn
/* 42465*/        OPC_CheckChild2Type, MVT::v16i8,
/* 42467*/        OPC_Scope, 54, /*->42523*/ // 2 children in Scope
/* 42469*/          OPC_CheckChild3Integer, 0, 
/* 42471*/          OPC_Scope, 24, /*->42497*/ // 2 children in Scope
/* 42473*/            OPC_CheckChild4Integer, 0, 
/* 42475*/            OPC_RecordChild5, // #2 = $mask
/* 42476*/            OPC_CheckChild5Type, MVT::v16i1,
/* 42478*/            OPC_RecordChild6, // #3 = $inactive
/* 42479*/            OPC_CheckChild6Type, MVT::v8i16,
/* 42481*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42483*/            OPC_EmitInteger, MVT::i32, 1, 
/* 42486*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBs8), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1553:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 18
                      // Dst: (MVE_VMULLBs8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 42497*/          /*Scope*/ 24, /*->42522*/
/* 42498*/            OPC_CheckChild4Integer, 1, 
/* 42500*/            OPC_RecordChild5, // #2 = $mask
/* 42501*/            OPC_CheckChild5Type, MVT::v16i1,
/* 42503*/            OPC_RecordChild6, // #3 = $inactive
/* 42504*/            OPC_CheckChild6Type, MVT::v8i16,
/* 42506*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42508*/            OPC_EmitInteger, MVT::i32, 1, 
/* 42511*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTs8), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1553:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 18
                      // Dst: (MVE_VMULLTs8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 42522*/          0, /*End of Scope*/
/* 42523*/        /*Scope*/ 54, /*->42578*/
/* 42524*/          OPC_CheckChild3Integer, 1, 
/* 42526*/          OPC_Scope, 24, /*->42552*/ // 2 children in Scope
/* 42528*/            OPC_CheckChild4Integer, 0, 
/* 42530*/            OPC_RecordChild5, // #2 = $mask
/* 42531*/            OPC_CheckChild5Type, MVT::v16i1,
/* 42533*/            OPC_RecordChild6, // #3 = $inactive
/* 42534*/            OPC_CheckChild6Type, MVT::v8i16,
/* 42536*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42538*/            OPC_EmitInteger, MVT::i32, 1, 
/* 42541*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBu8), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1553:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 18
                      // Dst: (MVE_VMULLBu8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 42552*/          /*Scope*/ 24, /*->42577*/
/* 42553*/            OPC_CheckChild4Integer, 1, 
/* 42555*/            OPC_RecordChild5, // #2 = $mask
/* 42556*/            OPC_CheckChild5Type, MVT::v16i1,
/* 42558*/            OPC_RecordChild6, // #3 = $inactive
/* 42559*/            OPC_CheckChild6Type, MVT::v8i16,
/* 42561*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42563*/            OPC_EmitInteger, MVT::i32, 1, 
/* 42566*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTu8), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1553:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 18
                      // Dst: (MVE_VMULLTu8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 42577*/          0, /*End of Scope*/
/* 42578*/        0, /*End of Scope*/
/* 42579*/      /*SwitchType*/ 117, MVT::v4i32,// ->42698
/* 42581*/        OPC_CheckChild1Type, MVT::v8i16,
/* 42583*/        OPC_RecordChild2, // #1 = $Qn
/* 42584*/        OPC_CheckChild2Type, MVT::v8i16,
/* 42586*/        OPC_Scope, 54, /*->42642*/ // 2 children in Scope
/* 42588*/          OPC_CheckChild3Integer, 0, 
/* 42590*/          OPC_Scope, 24, /*->42616*/ // 2 children in Scope
/* 42592*/            OPC_CheckChild4Integer, 0, 
/* 42594*/            OPC_RecordChild5, // #2 = $mask
/* 42595*/            OPC_CheckChild5Type, MVT::v8i1,
/* 42597*/            OPC_RecordChild6, // #3 = $inactive
/* 42598*/            OPC_CheckChild6Type, MVT::v4i32,
/* 42600*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42602*/            OPC_EmitInteger, MVT::i32, 1, 
/* 42605*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBs16), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1553:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 18
                      // Dst: (MVE_VMULLBs16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 42616*/          /*Scope*/ 24, /*->42641*/
/* 42617*/            OPC_CheckChild4Integer, 1, 
/* 42619*/            OPC_RecordChild5, // #2 = $mask
/* 42620*/            OPC_CheckChild5Type, MVT::v8i1,
/* 42622*/            OPC_RecordChild6, // #3 = $inactive
/* 42623*/            OPC_CheckChild6Type, MVT::v4i32,
/* 42625*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42627*/            OPC_EmitInteger, MVT::i32, 1, 
/* 42630*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTs16), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1553:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 18
                      // Dst: (MVE_VMULLTs16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 42641*/          0, /*End of Scope*/
/* 42642*/        /*Scope*/ 54, /*->42697*/
/* 42643*/          OPC_CheckChild3Integer, 1, 
/* 42645*/          OPC_Scope, 24, /*->42671*/ // 2 children in Scope
/* 42647*/            OPC_CheckChild4Integer, 0, 
/* 42649*/            OPC_RecordChild5, // #2 = $mask
/* 42650*/            OPC_CheckChild5Type, MVT::v8i1,
/* 42652*/            OPC_RecordChild6, // #3 = $inactive
/* 42653*/            OPC_CheckChild6Type, MVT::v4i32,
/* 42655*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42657*/            OPC_EmitInteger, MVT::i32, 1, 
/* 42660*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBu16), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1553:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 18
                      // Dst: (MVE_VMULLBu16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 42671*/          /*Scope*/ 24, /*->42696*/
/* 42672*/            OPC_CheckChild4Integer, 1, 
/* 42674*/            OPC_RecordChild5, // #2 = $mask
/* 42675*/            OPC_CheckChild5Type, MVT::v8i1,
/* 42677*/            OPC_RecordChild6, // #3 = $inactive
/* 42678*/            OPC_CheckChild6Type, MVT::v4i32,
/* 42680*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42682*/            OPC_EmitInteger, MVT::i32, 1, 
/* 42685*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTu16), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1553:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 18
                      // Dst: (MVE_VMULLTu16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 42696*/          0, /*End of Scope*/
/* 42697*/        0, /*End of Scope*/
/* 42698*/      /*SwitchType*/ 117, MVT::v2i64,// ->42817
/* 42700*/        OPC_CheckChild1Type, MVT::v4i32,
/* 42702*/        OPC_RecordChild2, // #1 = $Qn
/* 42703*/        OPC_CheckChild2Type, MVT::v4i32,
/* 42705*/        OPC_Scope, 54, /*->42761*/ // 2 children in Scope
/* 42707*/          OPC_CheckChild3Integer, 0, 
/* 42709*/          OPC_Scope, 24, /*->42735*/ // 2 children in Scope
/* 42711*/            OPC_CheckChild4Integer, 0, 
/* 42713*/            OPC_RecordChild5, // #2 = $mask
/* 42714*/            OPC_CheckChild5Type, MVT::v4i1,
/* 42716*/            OPC_RecordChild6, // #3 = $inactive
/* 42717*/            OPC_CheckChild6Type, MVT::v2i64,
/* 42719*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42721*/            OPC_EmitInteger, MVT::i32, 1, 
/* 42724*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBs32), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1553:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive) - Complexity = 18
                      // Dst: (MVE_VMULLBs32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive)
/* 42735*/          /*Scope*/ 24, /*->42760*/
/* 42736*/            OPC_CheckChild4Integer, 1, 
/* 42738*/            OPC_RecordChild5, // #2 = $mask
/* 42739*/            OPC_CheckChild5Type, MVT::v4i1,
/* 42741*/            OPC_RecordChild6, // #3 = $inactive
/* 42742*/            OPC_CheckChild6Type, MVT::v2i64,
/* 42744*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42746*/            OPC_EmitInteger, MVT::i32, 1, 
/* 42749*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTs32), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1553:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive) - Complexity = 18
                      // Dst: (MVE_VMULLTs32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive)
/* 42760*/          0, /*End of Scope*/
/* 42761*/        /*Scope*/ 54, /*->42816*/
/* 42762*/          OPC_CheckChild3Integer, 1, 
/* 42764*/          OPC_Scope, 24, /*->42790*/ // 2 children in Scope
/* 42766*/            OPC_CheckChild4Integer, 0, 
/* 42768*/            OPC_RecordChild5, // #2 = $mask
/* 42769*/            OPC_CheckChild5Type, MVT::v4i1,
/* 42771*/            OPC_RecordChild6, // #3 = $inactive
/* 42772*/            OPC_CheckChild6Type, MVT::v2i64,
/* 42774*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42776*/            OPC_EmitInteger, MVT::i32, 1, 
/* 42779*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBu32), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1553:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive) - Complexity = 18
                      // Dst: (MVE_VMULLBu32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive)
/* 42790*/          /*Scope*/ 24, /*->42815*/
/* 42791*/            OPC_CheckChild4Integer, 1, 
/* 42793*/            OPC_RecordChild5, // #2 = $mask
/* 42794*/            OPC_CheckChild5Type, MVT::v4i1,
/* 42796*/            OPC_RecordChild6, // #3 = $inactive
/* 42797*/            OPC_CheckChild6Type, MVT::v2i64,
/* 42799*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 42801*/            OPC_EmitInteger, MVT::i32, 1, 
/* 42804*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTu32), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1553:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive) - Complexity = 18
                      // Dst: (MVE_VMULLTu32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive)
/* 42815*/          0, /*End of Scope*/
/* 42816*/        0, /*End of Scope*/
/* 42817*/      0, // EndSwitchType
/* 42818*/    /*Scope*/ 91|128,1/*219*/, /*->43039*/
/* 42820*/      OPC_CheckChild0Integer, 80|128,12/*1616*/, 
/* 42823*/      OPC_RecordChild1, // #0 = $src
/* 42824*/      OPC_Scope, 70, /*->42896*/ // 3 children in Scope
/* 42826*/        OPC_CheckChild1Type, MVT::v16i8,
/* 42828*/        OPC_RecordChild2, // #1 = $imm
/* 42829*/        OPC_MoveChild2,
/* 42830*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 42833*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/* 42835*/        OPC_MoveParent,
/* 42836*/        OPC_CheckType, MVT::v16i8,
/* 42838*/        OPC_Scope, 27, /*->42867*/ // 2 children in Scope
/* 42840*/          OPC_CheckChild3Integer, 0, 
/* 42842*/          OPC_EmitConvertToTarget, 1,
/* 42844*/          OPC_EmitInteger, MVT::i32, 0, 
/* 42847*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42850*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 42856*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLimms8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1616:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 0:{ *:[i32] }) - Complexity = 17
                    // Dst: (MVE_VQSHLimms8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
/* 42867*/        /*Scope*/ 27, /*->42895*/
/* 42868*/          OPC_CheckChild3Integer, 1, 
/* 42870*/          OPC_EmitConvertToTarget, 1,
/* 42872*/          OPC_EmitInteger, MVT::i32, 0, 
/* 42875*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42878*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 42884*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLimmu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1616:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 1:{ *:[i32] }) - Complexity = 17
                    // Dst: (MVE_VQSHLimmu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
/* 42895*/        0, /*End of Scope*/
/* 42896*/      /*Scope*/ 70, /*->42967*/
/* 42897*/        OPC_CheckChild1Type, MVT::v8i16,
/* 42899*/        OPC_RecordChild2, // #1 = $imm
/* 42900*/        OPC_MoveChild2,
/* 42901*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 42904*/        OPC_CheckPredicate, 33, // Predicate_imm0_15
/* 42906*/        OPC_MoveParent,
/* 42907*/        OPC_CheckType, MVT::v8i16,
/* 42909*/        OPC_Scope, 27, /*->42938*/ // 2 children in Scope
/* 42911*/          OPC_CheckChild3Integer, 0, 
/* 42913*/          OPC_EmitConvertToTarget, 1,
/* 42915*/          OPC_EmitInteger, MVT::i32, 0, 
/* 42918*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42921*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 42927*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLimms16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1616:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 0:{ *:[i32] }) - Complexity = 17
                    // Dst: (MVE_VQSHLimms16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
/* 42938*/        /*Scope*/ 27, /*->42966*/
/* 42939*/          OPC_CheckChild3Integer, 1, 
/* 42941*/          OPC_EmitConvertToTarget, 1,
/* 42943*/          OPC_EmitInteger, MVT::i32, 0, 
/* 42946*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42949*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 42955*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLimmu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1616:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 1:{ *:[i32] }) - Complexity = 17
                    // Dst: (MVE_VQSHLimmu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
/* 42966*/        0, /*End of Scope*/
/* 42967*/      /*Scope*/ 70, /*->43038*/
/* 42968*/        OPC_CheckChild1Type, MVT::v4i32,
/* 42970*/        OPC_RecordChild2, // #1 = $imm
/* 42971*/        OPC_MoveChild2,
/* 42972*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 42975*/        OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 42977*/        OPC_MoveParent,
/* 42978*/        OPC_CheckType, MVT::v4i32,
/* 42980*/        OPC_Scope, 27, /*->43009*/ // 2 children in Scope
/* 42982*/          OPC_CheckChild3Integer, 0, 
/* 42984*/          OPC_EmitConvertToTarget, 1,
/* 42986*/          OPC_EmitInteger, MVT::i32, 0, 
/* 42989*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 42992*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 42998*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLimms32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1616:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 0:{ *:[i32] }) - Complexity = 17
                    // Dst: (MVE_VQSHLimms32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
/* 43009*/        /*Scope*/ 27, /*->43037*/
/* 43010*/          OPC_CheckChild3Integer, 1, 
/* 43012*/          OPC_EmitConvertToTarget, 1,
/* 43014*/          OPC_EmitInteger, MVT::i32, 0, 
/* 43017*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43020*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 43026*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLimmu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1616:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 1:{ *:[i32] }) - Complexity = 17
                    // Dst: (MVE_VQSHLimmu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
/* 43037*/        0, /*End of Scope*/
/* 43038*/      0, /*End of Scope*/
/* 43039*/    /*Scope*/ 73|128,1/*201*/, /*->43242*/
/* 43041*/      OPC_CheckChild0Integer, 81|128,12/*1617*/, 
/* 43044*/      OPC_RecordChild1, // #0 = $src
/* 43045*/      OPC_Scope, 64, /*->43111*/ // 3 children in Scope
/* 43047*/        OPC_CheckChild1Type, MVT::v16i8,
/* 43049*/        OPC_RecordChild2, // #1 = $imm
/* 43050*/        OPC_MoveChild2,
/* 43051*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43054*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/* 43056*/        OPC_MoveParent,
/* 43057*/        OPC_CheckType, MVT::v16i8,
/* 43059*/        OPC_Scope, 24, /*->43085*/ // 2 children in Scope
/* 43061*/          OPC_CheckChild3Integer, 0, 
/* 43063*/          OPC_RecordChild4, // #2 = $mask
/* 43064*/          OPC_CheckChild4Type, MVT::v16i1,
/* 43066*/          OPC_RecordChild5, // #3 = $inactive
/* 43067*/          OPC_CheckChild5Type, MVT::v16i8,
/* 43069*/          OPC_EmitConvertToTarget, 1,
/* 43071*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43074*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLimms8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1617:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VQSHLimms8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 43085*/        /*Scope*/ 24, /*->43110*/
/* 43086*/          OPC_CheckChild3Integer, 1, 
/* 43088*/          OPC_RecordChild4, // #2 = $mask
/* 43089*/          OPC_CheckChild4Type, MVT::v16i1,
/* 43091*/          OPC_RecordChild5, // #3 = $inactive
/* 43092*/          OPC_CheckChild5Type, MVT::v16i8,
/* 43094*/          OPC_EmitConvertToTarget, 1,
/* 43096*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43099*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLimmu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1617:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VQSHLimmu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 43110*/        0, /*End of Scope*/
/* 43111*/      /*Scope*/ 64, /*->43176*/
/* 43112*/        OPC_CheckChild1Type, MVT::v8i16,
/* 43114*/        OPC_RecordChild2, // #1 = $imm
/* 43115*/        OPC_MoveChild2,
/* 43116*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43119*/        OPC_CheckPredicate, 33, // Predicate_imm0_15
/* 43121*/        OPC_MoveParent,
/* 43122*/        OPC_CheckType, MVT::v8i16,
/* 43124*/        OPC_Scope, 24, /*->43150*/ // 2 children in Scope
/* 43126*/          OPC_CheckChild3Integer, 0, 
/* 43128*/          OPC_RecordChild4, // #2 = $mask
/* 43129*/          OPC_CheckChild4Type, MVT::v8i1,
/* 43131*/          OPC_RecordChild5, // #3 = $inactive
/* 43132*/          OPC_CheckChild5Type, MVT::v8i16,
/* 43134*/          OPC_EmitConvertToTarget, 1,
/* 43136*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43139*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLimms16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1617:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VQSHLimms16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 43150*/        /*Scope*/ 24, /*->43175*/
/* 43151*/          OPC_CheckChild3Integer, 1, 
/* 43153*/          OPC_RecordChild4, // #2 = $mask
/* 43154*/          OPC_CheckChild4Type, MVT::v8i1,
/* 43156*/          OPC_RecordChild5, // #3 = $inactive
/* 43157*/          OPC_CheckChild5Type, MVT::v8i16,
/* 43159*/          OPC_EmitConvertToTarget, 1,
/* 43161*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43164*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLimmu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1617:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VQSHLimmu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 43175*/        0, /*End of Scope*/
/* 43176*/      /*Scope*/ 64, /*->43241*/
/* 43177*/        OPC_CheckChild1Type, MVT::v4i32,
/* 43179*/        OPC_RecordChild2, // #1 = $imm
/* 43180*/        OPC_MoveChild2,
/* 43181*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43184*/        OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 43186*/        OPC_MoveParent,
/* 43187*/        OPC_CheckType, MVT::v4i32,
/* 43189*/        OPC_Scope, 24, /*->43215*/ // 2 children in Scope
/* 43191*/          OPC_CheckChild3Integer, 0, 
/* 43193*/          OPC_RecordChild4, // #2 = $mask
/* 43194*/          OPC_CheckChild4Type, MVT::v4i1,
/* 43196*/          OPC_RecordChild5, // #3 = $inactive
/* 43197*/          OPC_CheckChild5Type, MVT::v4i32,
/* 43199*/          OPC_EmitConvertToTarget, 1,
/* 43201*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43204*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLimms32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1617:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VQSHLimms32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 43215*/        /*Scope*/ 24, /*->43240*/
/* 43216*/          OPC_CheckChild3Integer, 1, 
/* 43218*/          OPC_RecordChild4, // #2 = $mask
/* 43219*/          OPC_CheckChild4Type, MVT::v4i1,
/* 43221*/          OPC_RecordChild5, // #3 = $inactive
/* 43222*/          OPC_CheckChild5Type, MVT::v4i32,
/* 43224*/          OPC_EmitConvertToTarget, 1,
/* 43226*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43229*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLimmu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1617:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VQSHLimmu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 43240*/        0, /*End of Scope*/
/* 43241*/      0, /*End of Scope*/
/* 43242*/    /*Scope*/ 91|128,1/*219*/, /*->43463*/
/* 43244*/      OPC_CheckChild0Integer, 88|128,12/*1624*/, 
/* 43247*/      OPC_RecordChild1, // #0 = $src
/* 43248*/      OPC_Scope, 70, /*->43320*/ // 3 children in Scope
/* 43250*/        OPC_CheckChild1Type, MVT::v16i8,
/* 43252*/        OPC_RecordChild2, // #1 = $imm
/* 43253*/        OPC_MoveChild2,
/* 43254*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43257*/        OPC_CheckPredicate, 34, // Predicate_shr_imm8
/* 43259*/        OPC_MoveParent,
/* 43260*/        OPC_CheckType, MVT::v16i8,
/* 43262*/        OPC_Scope, 27, /*->43291*/ // 2 children in Scope
/* 43264*/          OPC_CheckChild3Integer, 0, 
/* 43266*/          OPC_EmitConvertToTarget, 1,
/* 43268*/          OPC_EmitInteger, MVT::i32, 0, 
/* 43271*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43274*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 43280*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHR_imms8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1624:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }) - Complexity = 17
                    // Dst: (MVE_VRSHR_imms8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm)
/* 43291*/        /*Scope*/ 27, /*->43319*/
/* 43292*/          OPC_CheckChild3Integer, 1, 
/* 43294*/          OPC_EmitConvertToTarget, 1,
/* 43296*/          OPC_EmitInteger, MVT::i32, 0, 
/* 43299*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43302*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 43308*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHR_immu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1624:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }) - Complexity = 17
                    // Dst: (MVE_VRSHR_immu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm)
/* 43319*/        0, /*End of Scope*/
/* 43320*/      /*Scope*/ 70, /*->43391*/
/* 43321*/        OPC_CheckChild1Type, MVT::v8i16,
/* 43323*/        OPC_RecordChild2, // #1 = $imm
/* 43324*/        OPC_MoveChild2,
/* 43325*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43328*/        OPC_CheckPredicate, 35, // Predicate_shr_imm16
/* 43330*/        OPC_MoveParent,
/* 43331*/        OPC_CheckType, MVT::v8i16,
/* 43333*/        OPC_Scope, 27, /*->43362*/ // 2 children in Scope
/* 43335*/          OPC_CheckChild3Integer, 0, 
/* 43337*/          OPC_EmitConvertToTarget, 1,
/* 43339*/          OPC_EmitInteger, MVT::i32, 0, 
/* 43342*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43345*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 43351*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHR_imms16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1624:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }) - Complexity = 17
                    // Dst: (MVE_VRSHR_imms16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm)
/* 43362*/        /*Scope*/ 27, /*->43390*/
/* 43363*/          OPC_CheckChild3Integer, 1, 
/* 43365*/          OPC_EmitConvertToTarget, 1,
/* 43367*/          OPC_EmitInteger, MVT::i32, 0, 
/* 43370*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43373*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 43379*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHR_immu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1624:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }) - Complexity = 17
                    // Dst: (MVE_VRSHR_immu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm)
/* 43390*/        0, /*End of Scope*/
/* 43391*/      /*Scope*/ 70, /*->43462*/
/* 43392*/        OPC_CheckChild1Type, MVT::v4i32,
/* 43394*/        OPC_RecordChild2, // #1 = $imm
/* 43395*/        OPC_MoveChild2,
/* 43396*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43399*/        OPC_CheckPredicate, 1, // Predicate_shr_imm32
/* 43401*/        OPC_MoveParent,
/* 43402*/        OPC_CheckType, MVT::v4i32,
/* 43404*/        OPC_Scope, 27, /*->43433*/ // 2 children in Scope
/* 43406*/          OPC_CheckChild3Integer, 0, 
/* 43408*/          OPC_EmitConvertToTarget, 1,
/* 43410*/          OPC_EmitInteger, MVT::i32, 0, 
/* 43413*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43416*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 43422*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHR_imms32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1624:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm, 0:{ *:[i32] }) - Complexity = 17
                    // Dst: (MVE_VRSHR_imms32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm)
/* 43433*/        /*Scope*/ 27, /*->43461*/
/* 43434*/          OPC_CheckChild3Integer, 1, 
/* 43436*/          OPC_EmitConvertToTarget, 1,
/* 43438*/          OPC_EmitInteger, MVT::i32, 0, 
/* 43441*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43444*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 43450*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHR_immu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1624:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm, 1:{ *:[i32] }) - Complexity = 17
                    // Dst: (MVE_VRSHR_immu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm)
/* 43461*/        0, /*End of Scope*/
/* 43462*/      0, /*End of Scope*/
/* 43463*/    /*Scope*/ 73|128,1/*201*/, /*->43666*/
/* 43465*/      OPC_CheckChild0Integer, 89|128,12/*1625*/, 
/* 43468*/      OPC_RecordChild1, // #0 = $src
/* 43469*/      OPC_Scope, 64, /*->43535*/ // 3 children in Scope
/* 43471*/        OPC_CheckChild1Type, MVT::v16i8,
/* 43473*/        OPC_RecordChild2, // #1 = $imm
/* 43474*/        OPC_MoveChild2,
/* 43475*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43478*/        OPC_CheckPredicate, 34, // Predicate_shr_imm8
/* 43480*/        OPC_MoveParent,
/* 43481*/        OPC_CheckType, MVT::v16i8,
/* 43483*/        OPC_Scope, 24, /*->43509*/ // 2 children in Scope
/* 43485*/          OPC_CheckChild3Integer, 0, 
/* 43487*/          OPC_RecordChild4, // #2 = $mask
/* 43488*/          OPC_CheckChild4Type, MVT::v16i1,
/* 43490*/          OPC_RecordChild5, // #3 = $inactive
/* 43491*/          OPC_CheckChild5Type, MVT::v16i8,
/* 43493*/          OPC_EmitConvertToTarget, 1,
/* 43495*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43498*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHR_imms8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1625:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VRSHR_imms8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 43509*/        /*Scope*/ 24, /*->43534*/
/* 43510*/          OPC_CheckChild3Integer, 1, 
/* 43512*/          OPC_RecordChild4, // #2 = $mask
/* 43513*/          OPC_CheckChild4Type, MVT::v16i1,
/* 43515*/          OPC_RecordChild5, // #3 = $inactive
/* 43516*/          OPC_CheckChild5Type, MVT::v16i8,
/* 43518*/          OPC_EmitConvertToTarget, 1,
/* 43520*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43523*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHR_immu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1625:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VRSHR_immu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 43534*/        0, /*End of Scope*/
/* 43535*/      /*Scope*/ 64, /*->43600*/
/* 43536*/        OPC_CheckChild1Type, MVT::v8i16,
/* 43538*/        OPC_RecordChild2, // #1 = $imm
/* 43539*/        OPC_MoveChild2,
/* 43540*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43543*/        OPC_CheckPredicate, 35, // Predicate_shr_imm16
/* 43545*/        OPC_MoveParent,
/* 43546*/        OPC_CheckType, MVT::v8i16,
/* 43548*/        OPC_Scope, 24, /*->43574*/ // 2 children in Scope
/* 43550*/          OPC_CheckChild3Integer, 0, 
/* 43552*/          OPC_RecordChild4, // #2 = $mask
/* 43553*/          OPC_CheckChild4Type, MVT::v8i1,
/* 43555*/          OPC_RecordChild5, // #3 = $inactive
/* 43556*/          OPC_CheckChild5Type, MVT::v8i16,
/* 43558*/          OPC_EmitConvertToTarget, 1,
/* 43560*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43563*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHR_imms16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1625:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VRSHR_imms16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 43574*/        /*Scope*/ 24, /*->43599*/
/* 43575*/          OPC_CheckChild3Integer, 1, 
/* 43577*/          OPC_RecordChild4, // #2 = $mask
/* 43578*/          OPC_CheckChild4Type, MVT::v8i1,
/* 43580*/          OPC_RecordChild5, // #3 = $inactive
/* 43581*/          OPC_CheckChild5Type, MVT::v8i16,
/* 43583*/          OPC_EmitConvertToTarget, 1,
/* 43585*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43588*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHR_immu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1625:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VRSHR_immu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 43599*/        0, /*End of Scope*/
/* 43600*/      /*Scope*/ 64, /*->43665*/
/* 43601*/        OPC_CheckChild1Type, MVT::v4i32,
/* 43603*/        OPC_RecordChild2, // #1 = $imm
/* 43604*/        OPC_MoveChild2,
/* 43605*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43608*/        OPC_CheckPredicate, 1, // Predicate_shr_imm32
/* 43610*/        OPC_MoveParent,
/* 43611*/        OPC_CheckType, MVT::v4i32,
/* 43613*/        OPC_Scope, 24, /*->43639*/ // 2 children in Scope
/* 43615*/          OPC_CheckChild3Integer, 0, 
/* 43617*/          OPC_RecordChild4, // #2 = $mask
/* 43618*/          OPC_CheckChild4Type, MVT::v4i1,
/* 43620*/          OPC_RecordChild5, // #3 = $inactive
/* 43621*/          OPC_CheckChild5Type, MVT::v4i32,
/* 43623*/          OPC_EmitConvertToTarget, 1,
/* 43625*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43628*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHR_imms32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1625:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VRSHR_imms32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 43639*/        /*Scope*/ 24, /*->43664*/
/* 43640*/          OPC_CheckChild3Integer, 1, 
/* 43642*/          OPC_RecordChild4, // #2 = $mask
/* 43643*/          OPC_CheckChild4Type, MVT::v4i1,
/* 43645*/          OPC_RecordChild5, // #3 = $inactive
/* 43646*/          OPC_CheckChild5Type, MVT::v4i32,
/* 43648*/          OPC_EmitConvertToTarget, 1,
/* 43650*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43653*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRSHR_immu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1625:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VRSHR_immu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 43664*/        0, /*End of Scope*/
/* 43665*/      0, /*End of Scope*/
/* 43666*/    /*Scope*/ 85|128,1/*213*/, /*->43881*/
/* 43668*/      OPC_CheckChild0Integer, 30|128,12/*1566*/, 
/* 43671*/      OPC_RecordChild1, // #0 = $src
/* 43672*/      OPC_Scope, 68, /*->43742*/ // 3 children in Scope
/* 43674*/        OPC_CheckChild1Type, MVT::v16i8,
/* 43676*/        OPC_RecordChild2, // #1 = $imm
/* 43677*/        OPC_MoveChild2,
/* 43678*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43681*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/* 43683*/        OPC_MoveParent,
/* 43684*/        OPC_CheckType, MVT::v16i8,
/* 43686*/        OPC_Scope, 26, /*->43714*/ // 2 children in Scope
/* 43688*/          OPC_CheckChild3Integer, 1, 
/* 43690*/          OPC_RecordChild4, // #2 = $mask
/* 43691*/          OPC_CheckChild4Type, MVT::v16i1,
/* 43693*/          OPC_RecordChild5, // #3 = $inactive
/* 43694*/          OPC_CheckChild5Type, MVT::v16i8,
/* 43696*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 43698*/          OPC_EmitConvertToTarget, 1,
/* 43700*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43703*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHR_immu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1566:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VSHR_immu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 43714*/        /*Scope*/ 26, /*->43741*/
/* 43715*/          OPC_CheckChild3Integer, 0, 
/* 43717*/          OPC_RecordChild4, // #2 = $mask
/* 43718*/          OPC_CheckChild4Type, MVT::v16i1,
/* 43720*/          OPC_RecordChild5, // #3 = $inactive
/* 43721*/          OPC_CheckChild5Type, MVT::v16i8,
/* 43723*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 43725*/          OPC_EmitConvertToTarget, 1,
/* 43727*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43730*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHR_imms8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1566:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VSHR_imms8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 43741*/        0, /*End of Scope*/
/* 43742*/      /*Scope*/ 68, /*->43811*/
/* 43743*/        OPC_CheckChild1Type, MVT::v8i16,
/* 43745*/        OPC_RecordChild2, // #1 = $imm
/* 43746*/        OPC_MoveChild2,
/* 43747*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43750*/        OPC_CheckPredicate, 33, // Predicate_imm0_15
/* 43752*/        OPC_MoveParent,
/* 43753*/        OPC_CheckType, MVT::v8i16,
/* 43755*/        OPC_Scope, 26, /*->43783*/ // 2 children in Scope
/* 43757*/          OPC_CheckChild3Integer, 1, 
/* 43759*/          OPC_RecordChild4, // #2 = $mask
/* 43760*/          OPC_CheckChild4Type, MVT::v8i1,
/* 43762*/          OPC_RecordChild5, // #3 = $inactive
/* 43763*/          OPC_CheckChild5Type, MVT::v8i16,
/* 43765*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 43767*/          OPC_EmitConvertToTarget, 1,
/* 43769*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43772*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHR_immu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1566:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VSHR_immu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 43783*/        /*Scope*/ 26, /*->43810*/
/* 43784*/          OPC_CheckChild3Integer, 0, 
/* 43786*/          OPC_RecordChild4, // #2 = $mask
/* 43787*/          OPC_CheckChild4Type, MVT::v8i1,
/* 43789*/          OPC_RecordChild5, // #3 = $inactive
/* 43790*/          OPC_CheckChild5Type, MVT::v8i16,
/* 43792*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 43794*/          OPC_EmitConvertToTarget, 1,
/* 43796*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43799*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHR_imms16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1566:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VSHR_imms16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 43810*/        0, /*End of Scope*/
/* 43811*/      /*Scope*/ 68, /*->43880*/
/* 43812*/        OPC_CheckChild1Type, MVT::v4i32,
/* 43814*/        OPC_RecordChild2, // #1 = $imm
/* 43815*/        OPC_MoveChild2,
/* 43816*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43819*/        OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 43821*/        OPC_MoveParent,
/* 43822*/        OPC_CheckType, MVT::v4i32,
/* 43824*/        OPC_Scope, 26, /*->43852*/ // 2 children in Scope
/* 43826*/          OPC_CheckChild3Integer, 1, 
/* 43828*/          OPC_RecordChild4, // #2 = $mask
/* 43829*/          OPC_CheckChild4Type, MVT::v4i1,
/* 43831*/          OPC_RecordChild5, // #3 = $inactive
/* 43832*/          OPC_CheckChild5Type, MVT::v4i32,
/* 43834*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 43836*/          OPC_EmitConvertToTarget, 1,
/* 43838*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43841*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHR_immu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1566:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VSHR_immu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 43852*/        /*Scope*/ 26, /*->43879*/
/* 43853*/          OPC_CheckChild3Integer, 0, 
/* 43855*/          OPC_RecordChild4, // #2 = $mask
/* 43856*/          OPC_CheckChild4Type, MVT::v4i1,
/* 43858*/          OPC_RecordChild5, // #3 = $inactive
/* 43859*/          OPC_CheckChild5Type, MVT::v4i32,
/* 43861*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 43863*/          OPC_EmitConvertToTarget, 1,
/* 43865*/          OPC_EmitInteger, MVT::i32, 1, 
/* 43868*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHR_imms32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1566:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 17
                    // Dst: (MVE_VSHR_imms32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 43879*/        0, /*End of Scope*/
/* 43880*/      0, /*End of Scope*/
/* 43881*/    /*Scope*/ 54|128,2/*310*/, /*->44193*/
/* 43883*/      OPC_CheckChild0Integer, 49|128,12/*1585*/, 
/* 43886*/      OPC_Scope, 58|128,1/*186*/, /*->44075*/ // 2 children in Scope
/* 43889*/        OPC_CheckChild1Integer, 1, 
/* 43891*/        OPC_RecordChild2, // #0 = $rot
/* 43892*/        OPC_MoveChild2,
/* 43893*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 43896*/        OPC_MoveParent,
/* 43897*/        OPC_RecordChild3, // #1 = $Qn
/* 43898*/        OPC_SwitchType /*5 cases */, 33, MVT::v16i8,// ->43934
/* 43901*/          OPC_CheckChild3Type, MVT::v16i8,
/* 43903*/          OPC_RecordChild4, // #2 = $Qm
/* 43904*/          OPC_CheckChild4Type, MVT::v16i8,
/* 43906*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 43908*/          OPC_EmitConvertToTarget, 0,
/* 43910*/          OPC_EmitInteger, MVT::i32, 0, 
/* 43913*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43916*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #6
/* 43922*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCADDi8), 0,
                        MVT::v16i8, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1585:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) - Complexity = 16
                    // Dst: (MVE_VCADDi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] }):$rot)
/* 43934*/        /*SwitchType*/ 33, MVT::v8i16,// ->43969
/* 43936*/          OPC_CheckChild3Type, MVT::v8i16,
/* 43938*/          OPC_RecordChild4, // #2 = $Qm
/* 43939*/          OPC_CheckChild4Type, MVT::v8i16,
/* 43941*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 43943*/          OPC_EmitConvertToTarget, 0,
/* 43945*/          OPC_EmitInteger, MVT::i32, 0, 
/* 43948*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43951*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #6
/* 43957*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCADDi16), 0,
                        MVT::v8i16, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1585:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) - Complexity = 16
                    // Dst: (MVE_VCADDi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$rot)
/* 43969*/        /*SwitchType*/ 33, MVT::v4i32,// ->44004
/* 43971*/          OPC_CheckChild3Type, MVT::v4i32,
/* 43973*/          OPC_RecordChild4, // #2 = $Qm
/* 43974*/          OPC_CheckChild4Type, MVT::v4i32,
/* 43976*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 43978*/          OPC_EmitConvertToTarget, 0,
/* 43980*/          OPC_EmitInteger, MVT::i32, 0, 
/* 43983*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 43986*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #6
/* 43992*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCADDi32), 0,
                        MVT::v4i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1585:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) - Complexity = 16
                    // Dst: (MVE_VCADDi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$rot)
/* 44004*/        /*SwitchType*/ 33, MVT::v8f16,// ->44039
/* 44006*/          OPC_CheckChild3Type, MVT::v8f16,
/* 44008*/          OPC_RecordChild4, // #2 = $Qm
/* 44009*/          OPC_CheckChild4Type, MVT::v8f16,
/* 44011*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 44013*/          OPC_EmitConvertToTarget, 0,
/* 44015*/          OPC_EmitInteger, MVT::i32, 0, 
/* 44018*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44021*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #6
/* 44027*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCADDf16), 0,
                        MVT::v8f16, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1585:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm) - Complexity = 16
                    // Dst: (MVE_VCADDf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$rot)
/* 44039*/        /*SwitchType*/ 33, MVT::v4f32,// ->44074
/* 44041*/          OPC_CheckChild3Type, MVT::v4f32,
/* 44043*/          OPC_RecordChild4, // #2 = $Qm
/* 44044*/          OPC_CheckChild4Type, MVT::v4f32,
/* 44046*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 44048*/          OPC_EmitConvertToTarget, 0,
/* 44050*/          OPC_EmitInteger, MVT::i32, 0, 
/* 44053*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44056*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #6
/* 44062*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCADDf32), 0,
                        MVT::v4f32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1585:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm) - Complexity = 16
                    // Dst: (MVE_VCADDf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$rot)
/* 44074*/        0, // EndSwitchType
/* 44075*/      /*Scope*/ 116, /*->44192*/
/* 44076*/        OPC_CheckChild1Integer, 0, 
/* 44078*/        OPC_RecordChild2, // #0 = $rot
/* 44079*/        OPC_MoveChild2,
/* 44080*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44083*/        OPC_MoveParent,
/* 44084*/        OPC_RecordChild3, // #1 = $Qn
/* 44085*/        OPC_SwitchType /*3 cases */, 33, MVT::v16i8,// ->44121
/* 44088*/          OPC_CheckChild3Type, MVT::v16i8,
/* 44090*/          OPC_RecordChild4, // #2 = $Qm
/* 44091*/          OPC_CheckChild4Type, MVT::v16i8,
/* 44093*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 44095*/          OPC_EmitConvertToTarget, 0,
/* 44097*/          OPC_EmitInteger, MVT::i32, 0, 
/* 44100*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44103*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #6
/* 44109*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHCADDs8), 0,
                        MVT::v16i8, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1585:{ *:[iPTR] }, 0:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm) - Complexity = 16
                    // Dst: (MVE_VHCADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] }):$rot)
/* 44121*/        /*SwitchType*/ 33, MVT::v8i16,// ->44156
/* 44123*/          OPC_CheckChild3Type, MVT::v8i16,
/* 44125*/          OPC_RecordChild4, // #2 = $Qm
/* 44126*/          OPC_CheckChild4Type, MVT::v8i16,
/* 44128*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 44130*/          OPC_EmitConvertToTarget, 0,
/* 44132*/          OPC_EmitInteger, MVT::i32, 0, 
/* 44135*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44138*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #6
/* 44144*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHCADDs16), 0,
                        MVT::v8i16, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1585:{ *:[iPTR] }, 0:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm) - Complexity = 16
                    // Dst: (MVE_VHCADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$rot)
/* 44156*/        /*SwitchType*/ 33, MVT::v4i32,// ->44191
/* 44158*/          OPC_CheckChild3Type, MVT::v4i32,
/* 44160*/          OPC_RecordChild4, // #2 = $Qm
/* 44161*/          OPC_CheckChild4Type, MVT::v4i32,
/* 44163*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 44165*/          OPC_EmitConvertToTarget, 0,
/* 44167*/          OPC_EmitInteger, MVT::i32, 0, 
/* 44170*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44173*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #6
/* 44179*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHCADDs32), 0,
                        MVT::v4i32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1585:{ *:[iPTR] }, 0:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm) - Complexity = 16
                    // Dst: (MVE_VHCADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$rot)
/* 44191*/        0, // EndSwitchType
/* 44192*/      0, /*End of Scope*/
/* 44193*/    /*Scope*/ 30|128,2/*286*/, /*->44481*/
/* 44195*/      OPC_CheckChild0Integer, 50|128,12/*1586*/, 
/* 44198*/      OPC_Scope, 43|128,1/*171*/, /*->44372*/ // 2 children in Scope
/* 44201*/        OPC_CheckChild1Integer, 1, 
/* 44203*/        OPC_RecordChild2, // #0 = $rot
/* 44204*/        OPC_MoveChild2,
/* 44205*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44208*/        OPC_MoveParent,
/* 44209*/        OPC_RecordChild3, // #1 = $inactive
/* 44210*/        OPC_SwitchType /*5 cases */, 30, MVT::v16i8,// ->44243
/* 44213*/          OPC_CheckChild3Type, MVT::v16i8,
/* 44215*/          OPC_RecordChild4, // #2 = $Qn
/* 44216*/          OPC_CheckChild4Type, MVT::v16i8,
/* 44218*/          OPC_RecordChild5, // #3 = $Qm
/* 44219*/          OPC_CheckChild5Type, MVT::v16i8,
/* 44221*/          OPC_RecordChild6, // #4 = $mask
/* 44222*/          OPC_CheckChild6Type, MVT::v16i1,
/* 44224*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 44226*/          OPC_EmitConvertToTarget, 0,
/* 44228*/          OPC_EmitInteger, MVT::i32, 1, 
/* 44231*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCADDi8), 0,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 5, 6, 4, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1586:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v16i8] }:$inactive, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, VCCR:{ *:[v16i1] }:$mask) - Complexity = 16
                    // Dst: (MVE_VCADDi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] }):$rot, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 44243*/        /*SwitchType*/ 30, MVT::v8i16,// ->44275
/* 44245*/          OPC_CheckChild3Type, MVT::v8i16,
/* 44247*/          OPC_RecordChild4, // #2 = $Qn
/* 44248*/          OPC_CheckChild4Type, MVT::v8i16,
/* 44250*/          OPC_RecordChild5, // #3 = $Qm
/* 44251*/          OPC_CheckChild5Type, MVT::v8i16,
/* 44253*/          OPC_RecordChild6, // #4 = $mask
/* 44254*/          OPC_CheckChild6Type, MVT::v8i1,
/* 44256*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 44258*/          OPC_EmitConvertToTarget, 0,
/* 44260*/          OPC_EmitInteger, MVT::i32, 1, 
/* 44263*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCADDi16), 0,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 5, 6, 4, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1586:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8i16] }:$inactive, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 16
                    // Dst: (MVE_VCADDi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$rot, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 44275*/        /*SwitchType*/ 30, MVT::v4i32,// ->44307
/* 44277*/          OPC_CheckChild3Type, MVT::v4i32,
/* 44279*/          OPC_RecordChild4, // #2 = $Qn
/* 44280*/          OPC_CheckChild4Type, MVT::v4i32,
/* 44282*/          OPC_RecordChild5, // #3 = $Qm
/* 44283*/          OPC_CheckChild5Type, MVT::v4i32,
/* 44285*/          OPC_RecordChild6, // #4 = $mask
/* 44286*/          OPC_CheckChild6Type, MVT::v4i1,
/* 44288*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 44290*/          OPC_EmitConvertToTarget, 0,
/* 44292*/          OPC_EmitInteger, MVT::i32, 1, 
/* 44295*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCADDi32), 0,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 5, 6, 4, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1586:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4i32] }:$inactive, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 16
                    // Dst: (MVE_VCADDi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$rot, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 44307*/        /*SwitchType*/ 30, MVT::v8f16,// ->44339
/* 44309*/          OPC_CheckChild3Type, MVT::v8f16,
/* 44311*/          OPC_RecordChild4, // #2 = $Qn
/* 44312*/          OPC_CheckChild4Type, MVT::v8f16,
/* 44314*/          OPC_RecordChild5, // #3 = $Qm
/* 44315*/          OPC_CheckChild5Type, MVT::v8f16,
/* 44317*/          OPC_RecordChild6, // #4 = $mask
/* 44318*/          OPC_CheckChild6Type, MVT::v8i1,
/* 44320*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 44322*/          OPC_EmitConvertToTarget, 0,
/* 44324*/          OPC_EmitInteger, MVT::i32, 1, 
/* 44327*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCADDf16), 0,
                        MVT::v8f16, 6/*#Ops*/, 2, 3, 5, 6, 4, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1586:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8f16] }:$inactive, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 16
                    // Dst: (MVE_VCADDf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$rot, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8f16] }:$inactive)
/* 44339*/        /*SwitchType*/ 30, MVT::v4f32,// ->44371
/* 44341*/          OPC_CheckChild3Type, MVT::v4f32,
/* 44343*/          OPC_RecordChild4, // #2 = $Qn
/* 44344*/          OPC_CheckChild4Type, MVT::v4f32,
/* 44346*/          OPC_RecordChild5, // #3 = $Qm
/* 44347*/          OPC_CheckChild5Type, MVT::v4f32,
/* 44349*/          OPC_RecordChild6, // #4 = $mask
/* 44350*/          OPC_CheckChild6Type, MVT::v4i1,
/* 44352*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 44354*/          OPC_EmitConvertToTarget, 0,
/* 44356*/          OPC_EmitInteger, MVT::i32, 1, 
/* 44359*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCADDf32), 0,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 5, 6, 4, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1586:{ *:[iPTR] }, 1:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4f32] }:$inactive, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 16
                    // Dst: (MVE_VCADDf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$rot, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4f32] }:$inactive)
/* 44371*/        0, // EndSwitchType
/* 44372*/      /*Scope*/ 107, /*->44480*/
/* 44373*/        OPC_CheckChild1Integer, 0, 
/* 44375*/        OPC_RecordChild2, // #0 = $rot
/* 44376*/        OPC_MoveChild2,
/* 44377*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44380*/        OPC_MoveParent,
/* 44381*/        OPC_RecordChild3, // #1 = $inactive
/* 44382*/        OPC_SwitchType /*3 cases */, 30, MVT::v16i8,// ->44415
/* 44385*/          OPC_CheckChild3Type, MVT::v16i8,
/* 44387*/          OPC_RecordChild4, // #2 = $Qn
/* 44388*/          OPC_CheckChild4Type, MVT::v16i8,
/* 44390*/          OPC_RecordChild5, // #3 = $Qm
/* 44391*/          OPC_CheckChild5Type, MVT::v16i8,
/* 44393*/          OPC_RecordChild6, // #4 = $mask
/* 44394*/          OPC_CheckChild6Type, MVT::v16i1,
/* 44396*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 44398*/          OPC_EmitConvertToTarget, 0,
/* 44400*/          OPC_EmitInteger, MVT::i32, 1, 
/* 44403*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHCADDs8), 0,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 5, 6, 4, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1586:{ *:[iPTR] }, 0:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v16i8] }:$inactive, MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, VCCR:{ *:[v16i1] }:$mask) - Complexity = 16
                    // Dst: (MVE_VHCADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qn, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] }):$rot, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 44415*/        /*SwitchType*/ 30, MVT::v8i16,// ->44447
/* 44417*/          OPC_CheckChild3Type, MVT::v8i16,
/* 44419*/          OPC_RecordChild4, // #2 = $Qn
/* 44420*/          OPC_CheckChild4Type, MVT::v8i16,
/* 44422*/          OPC_RecordChild5, // #3 = $Qm
/* 44423*/          OPC_CheckChild5Type, MVT::v8i16,
/* 44425*/          OPC_RecordChild6, // #4 = $mask
/* 44426*/          OPC_CheckChild6Type, MVT::v8i1,
/* 44428*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 44430*/          OPC_EmitConvertToTarget, 0,
/* 44432*/          OPC_EmitInteger, MVT::i32, 1, 
/* 44435*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHCADDs16), 0,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 5, 6, 4, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1586:{ *:[iPTR] }, 0:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8i16] }:$inactive, MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 16
                    // Dst: (MVE_VHCADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qn, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] }):$rot, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 44447*/        /*SwitchType*/ 30, MVT::v4i32,// ->44479
/* 44449*/          OPC_CheckChild3Type, MVT::v4i32,
/* 44451*/          OPC_RecordChild4, // #2 = $Qn
/* 44452*/          OPC_CheckChild4Type, MVT::v4i32,
/* 44454*/          OPC_RecordChild5, // #3 = $Qm
/* 44455*/          OPC_CheckChild5Type, MVT::v4i32,
/* 44457*/          OPC_RecordChild6, // #4 = $mask
/* 44458*/          OPC_CheckChild6Type, MVT::v4i1,
/* 44460*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 44462*/          OPC_EmitConvertToTarget, 0,
/* 44464*/          OPC_EmitInteger, MVT::i32, 1, 
/* 44467*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHCADDs32), 0,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 5, 6, 4, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1586:{ *:[iPTR] }, 0:{ *:[i32] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4i32] }:$inactive, MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 16
                    // Dst: (MVE_VHCADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qn, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] }):$rot, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 44479*/        0, // EndSwitchType
/* 44480*/      0, /*End of Scope*/
/* 44481*/    /*Scope*/ 25|128,5/*665*/, /*->45148*/
/* 44483*/      OPC_CheckChild0Integer, 58|128,13/*1722*/, 
/* 44486*/      OPC_Scope, 43|128,1/*171*/, /*->44660*/ // 5 children in Scope
/* 44489*/        OPC_RecordChild1, // #0 = $Vn
/* 44490*/        OPC_Scope, 41, /*->44533*/ // 4 children in Scope
/* 44492*/          OPC_CheckChild1Type, MVT::v4i16,
/* 44494*/          OPC_MoveChild2,
/* 44495*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 44498*/          OPC_RecordChild0, // #1 = $Vm
/* 44499*/          OPC_CheckChild0Type, MVT::v4i16,
/* 44501*/          OPC_RecordChild1, // #2 = $lane
/* 44502*/          OPC_MoveChild1,
/* 44503*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44506*/          OPC_MoveParent,
/* 44507*/          OPC_CheckType, MVT::v4i16,
/* 44509*/          OPC_MoveParent,
/* 44510*/          OPC_CheckType, MVT::v4i16,
/* 44512*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 44514*/          OPC_EmitConvertToTarget, 2,
/* 44516*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44519*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44522*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1722:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQDMULHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 44533*/        /*Scope*/ 41, /*->44575*/
/* 44534*/          OPC_CheckChild1Type, MVT::v2i32,
/* 44536*/          OPC_MoveChild2,
/* 44537*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 44540*/          OPC_RecordChild0, // #1 = $Vm
/* 44541*/          OPC_CheckChild0Type, MVT::v2i32,
/* 44543*/          OPC_RecordChild1, // #2 = $lane
/* 44544*/          OPC_MoveChild1,
/* 44545*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44548*/          OPC_MoveParent,
/* 44549*/          OPC_CheckType, MVT::v2i32,
/* 44551*/          OPC_MoveParent,
/* 44552*/          OPC_CheckType, MVT::v2i32,
/* 44554*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 44556*/          OPC_EmitConvertToTarget, 2,
/* 44558*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44561*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44564*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1722:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQDMULHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 44575*/        /*Scope*/ 41, /*->44617*/
/* 44576*/          OPC_CheckChild1Type, MVT::v8i16,
/* 44578*/          OPC_MoveChild2,
/* 44579*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 44582*/          OPC_RecordChild0, // #1 = $Vm
/* 44583*/          OPC_CheckChild0Type, MVT::v4i16,
/* 44585*/          OPC_RecordChild1, // #2 = $lane
/* 44586*/          OPC_MoveChild1,
/* 44587*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44590*/          OPC_MoveParent,
/* 44591*/          OPC_CheckType, MVT::v8i16,
/* 44593*/          OPC_MoveParent,
/* 44594*/          OPC_CheckType, MVT::v8i16,
/* 44596*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 44598*/          OPC_EmitConvertToTarget, 2,
/* 44600*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44603*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44606*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1722:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, (ARMvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQDMULHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 44617*/        /*Scope*/ 41, /*->44659*/
/* 44618*/          OPC_CheckChild1Type, MVT::v4i32,
/* 44620*/          OPC_MoveChild2,
/* 44621*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 44624*/          OPC_RecordChild0, // #1 = $Vm
/* 44625*/          OPC_CheckChild0Type, MVT::v2i32,
/* 44627*/          OPC_RecordChild1, // #2 = $lane
/* 44628*/          OPC_MoveChild1,
/* 44629*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44632*/          OPC_MoveParent,
/* 44633*/          OPC_CheckType, MVT::v4i32,
/* 44635*/          OPC_MoveParent,
/* 44636*/          OPC_CheckType, MVT::v4i32,
/* 44638*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 44640*/          OPC_EmitConvertToTarget, 2,
/* 44642*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44645*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44648*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1722:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, (ARMvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQDMULHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 44659*/        0, /*End of Scope*/
/* 44660*/      /*Scope*/ 17|128,1/*145*/, /*->44807*/
/* 44662*/        OPC_MoveChild1,
/* 44663*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 44666*/        OPC_RecordChild0, // #0 = $Vm
/* 44667*/        OPC_Scope, 68, /*->44737*/ // 2 children in Scope
/* 44669*/          OPC_CheckChild0Type, MVT::v4i16,
/* 44671*/          OPC_RecordChild1, // #1 = $lane
/* 44672*/          OPC_MoveChild1,
/* 44673*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44676*/          OPC_MoveParent,
/* 44677*/          OPC_SwitchType /*2 cases */, 27, MVT::v4i16,// ->44707
/* 44680*/            OPC_MoveParent,
/* 44681*/            OPC_RecordChild2, // #2 = $Vn
/* 44682*/            OPC_CheckChild2Type, MVT::v4i16,
/* 44684*/            OPC_CheckType, MVT::v4i16,
/* 44686*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 44688*/            OPC_EmitConvertToTarget, 1,
/* 44690*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44693*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44696*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv4i16), 0,
                          MVT::v4i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1722:{ *:[iPTR] }, (ARMvduplane:{ *:[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)
/* 44707*/          /*SwitchType*/ 27, MVT::v8i16,// ->44736
/* 44709*/            OPC_MoveParent,
/* 44710*/            OPC_RecordChild2, // #2 = $Vn
/* 44711*/            OPC_CheckChild2Type, MVT::v8i16,
/* 44713*/            OPC_CheckType, MVT::v8i16,
/* 44715*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 44717*/            OPC_EmitConvertToTarget, 1,
/* 44719*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44722*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44725*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1722:{ *:[iPTR] }, (ARMvduplane:{ *:[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)
/* 44736*/          0, // EndSwitchType
/* 44737*/        /*Scope*/ 68, /*->44806*/
/* 44738*/          OPC_CheckChild0Type, MVT::v2i32,
/* 44740*/          OPC_RecordChild1, // #1 = $lane
/* 44741*/          OPC_MoveChild1,
/* 44742*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44745*/          OPC_MoveParent,
/* 44746*/          OPC_SwitchType /*2 cases */, 27, MVT::v2i32,// ->44776
/* 44749*/            OPC_MoveParent,
/* 44750*/            OPC_RecordChild2, // #2 = $Vn
/* 44751*/            OPC_CheckChild2Type, MVT::v2i32,
/* 44753*/            OPC_CheckType, MVT::v2i32,
/* 44755*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 44757*/            OPC_EmitConvertToTarget, 1,
/* 44759*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44762*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44765*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv2i32), 0,
                          MVT::v2i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1722:{ *:[iPTR] }, (ARMvduplane:{ *:[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)
/* 44776*/          /*SwitchType*/ 27, MVT::v4i32,// ->44805
/* 44778*/            OPC_MoveParent,
/* 44779*/            OPC_RecordChild2, // #2 = $Vn
/* 44780*/            OPC_CheckChild2Type, MVT::v4i32,
/* 44782*/            OPC_CheckType, MVT::v4i32,
/* 44784*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 44786*/            OPC_EmitConvertToTarget, 1,
/* 44788*/            OPC_EmitInteger, MVT::i32, 14, 
/* 44791*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44794*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1722:{ *:[iPTR] }, (ARMvduplane:{ *:[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)
/* 44805*/          0, // EndSwitchType
/* 44806*/        0, /*End of Scope*/
/* 44807*/      /*Scope*/ 119, /*->44927*/
/* 44808*/        OPC_RecordChild1, // #0 = $src1
/* 44809*/        OPC_Scope, 57, /*->44868*/ // 2 children in Scope
/* 44811*/          OPC_CheckChild1Type, MVT::v8i16,
/* 44813*/          OPC_MoveChild2,
/* 44814*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 44817*/          OPC_RecordChild0, // #1 = $src2
/* 44818*/          OPC_CheckChild0Type, MVT::v8i16,
/* 44820*/          OPC_RecordChild1, // #2 = $lane
/* 44821*/          OPC_MoveChild1,
/* 44822*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44825*/          OPC_MoveParent,
/* 44826*/          OPC_CheckType, MVT::v8i16,
/* 44828*/          OPC_MoveParent,
/* 44829*/          OPC_CheckType, MVT::v8i16,
/* 44831*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 44833*/          OPC_EmitConvertToTarget, 2,
/* 44835*/          OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/* 44838*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 1, 4,  // Results = #5
/* 44846*/          OPC_EmitConvertToTarget, 2,
/* 44848*/          OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/* 44851*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44854*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44857*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1722:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, (ARMvduplane:{ *:[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))
/* 44868*/        /*Scope*/ 57, /*->44926*/
/* 44869*/          OPC_CheckChild1Type, MVT::v4i32,
/* 44871*/          OPC_MoveChild2,
/* 44872*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 44875*/          OPC_RecordChild0, // #1 = $src2
/* 44876*/          OPC_CheckChild0Type, MVT::v4i32,
/* 44878*/          OPC_RecordChild1, // #2 = $lane
/* 44879*/          OPC_MoveChild1,
/* 44880*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44883*/          OPC_MoveParent,
/* 44884*/          OPC_CheckType, MVT::v4i32,
/* 44886*/          OPC_MoveParent,
/* 44887*/          OPC_CheckType, MVT::v4i32,
/* 44889*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 44891*/          OPC_EmitConvertToTarget, 2,
/* 44893*/          OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 44896*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 44904*/          OPC_EmitConvertToTarget, 2,
/* 44906*/          OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 44909*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44912*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44915*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1722:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (ARMvduplane:{ *:[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))
/* 44926*/        0, /*End of Scope*/
/* 44927*/      /*Scope*/ 115, /*->45043*/
/* 44928*/        OPC_MoveChild1,
/* 44929*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 44932*/        OPC_RecordChild0, // #0 = $src2
/* 44933*/        OPC_Scope, 53, /*->44988*/ // 2 children in Scope
/* 44935*/          OPC_CheckChild0Type, MVT::v8i16,
/* 44937*/          OPC_RecordChild1, // #1 = $lane
/* 44938*/          OPC_MoveChild1,
/* 44939*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44942*/          OPC_MoveParent,
/* 44943*/          OPC_CheckType, MVT::v8i16,
/* 44945*/          OPC_MoveParent,
/* 44946*/          OPC_RecordChild2, // #2 = $src1
/* 44947*/          OPC_CheckChild2Type, MVT::v8i16,
/* 44949*/          OPC_CheckType, MVT::v8i16,
/* 44951*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 44953*/          OPC_EmitConvertToTarget, 1,
/* 44955*/          OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/* 44958*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 4,  // Results = #5
/* 44966*/          OPC_EmitConvertToTarget, 1,
/* 44968*/          OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/* 44971*/          OPC_EmitInteger, MVT::i32, 14, 
/* 44974*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 44977*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1722:{ *:[iPTR] }, (ARMvduplane:{ *:[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))
/* 44988*/        /*Scope*/ 53, /*->45042*/
/* 44989*/          OPC_CheckChild0Type, MVT::v4i32,
/* 44991*/          OPC_RecordChild1, // #1 = $lane
/* 44992*/          OPC_MoveChild1,
/* 44993*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 44996*/          OPC_MoveParent,
/* 44997*/          OPC_CheckType, MVT::v4i32,
/* 44999*/          OPC_MoveParent,
/* 45000*/          OPC_RecordChild2, // #2 = $src1
/* 45001*/          OPC_CheckChild2Type, MVT::v4i32,
/* 45003*/          OPC_CheckType, MVT::v4i32,
/* 45005*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45007*/          OPC_EmitConvertToTarget, 1,
/* 45009*/          OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 45012*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 4,  // Results = #5
/* 45020*/          OPC_EmitConvertToTarget, 1,
/* 45022*/          OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 45025*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45028*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45031*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHslv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1722:{ *:[iPTR] }, (ARMvduplane:{ *:[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))
/* 45042*/        0, /*End of Scope*/
/* 45043*/      /*Scope*/ 103, /*->45147*/
/* 45044*/        OPC_RecordChild1, // #0 = $Vn
/* 45045*/        OPC_SwitchType /*4 cases */, 23, MVT::v4i16,// ->45071
/* 45048*/          OPC_CheckChild1Type, MVT::v4i16,
/* 45050*/          OPC_RecordChild2, // #1 = $Vm
/* 45051*/          OPC_CheckChild2Type, MVT::v4i16,
/* 45053*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45055*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45058*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45061*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHv4i16), 0,
                        MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1722:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                    // Dst: (VQDMULHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 45071*/        /*SwitchType*/ 23, MVT::v2i32,// ->45096
/* 45073*/          OPC_CheckChild1Type, MVT::v2i32,
/* 45075*/          OPC_RecordChild2, // #1 = $Vm
/* 45076*/          OPC_CheckChild2Type, MVT::v2i32,
/* 45078*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45080*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45083*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45086*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHv2i32), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1722:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                    // Dst: (VQDMULHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 45096*/        /*SwitchType*/ 23, MVT::v8i16,// ->45121
/* 45098*/          OPC_CheckChild1Type, MVT::v8i16,
/* 45100*/          OPC_RecordChild2, // #1 = $Vm
/* 45101*/          OPC_CheckChild2Type, MVT::v8i16,
/* 45103*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45105*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45108*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45111*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1722:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                    // Dst: (VQDMULHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 45121*/        /*SwitchType*/ 23, MVT::v4i32,// ->45146
/* 45123*/          OPC_CheckChild1Type, MVT::v4i32,
/* 45125*/          OPC_RecordChild2, // #1 = $Vm
/* 45126*/          OPC_CheckChild2Type, MVT::v4i32,
/* 45128*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45130*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45133*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45136*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULHv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1722:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                    // Dst: (VQDMULHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 45146*/        0, // EndSwitchType
/* 45147*/      0, /*End of Scope*/
/* 45148*/    /*Scope*/ 25|128,5/*665*/, /*->45815*/
/* 45150*/      OPC_CheckChild0Integer, 64|128,13/*1728*/, 
/* 45153*/      OPC_Scope, 43|128,1/*171*/, /*->45327*/ // 5 children in Scope
/* 45156*/        OPC_RecordChild1, // #0 = $Vn
/* 45157*/        OPC_Scope, 41, /*->45200*/ // 4 children in Scope
/* 45159*/          OPC_CheckChild1Type, MVT::v4i16,
/* 45161*/          OPC_MoveChild2,
/* 45162*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 45165*/          OPC_RecordChild0, // #1 = $Vm
/* 45166*/          OPC_CheckChild0Type, MVT::v4i16,
/* 45168*/          OPC_RecordChild1, // #2 = $lane
/* 45169*/          OPC_MoveChild1,
/* 45170*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45173*/          OPC_MoveParent,
/* 45174*/          OPC_CheckType, MVT::v4i16,
/* 45176*/          OPC_MoveParent,
/* 45177*/          OPC_CheckType, MVT::v4i16,
/* 45179*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45181*/          OPC_EmitConvertToTarget, 2,
/* 45183*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45186*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45189*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1728:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQRDMULHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 45200*/        /*Scope*/ 41, /*->45242*/
/* 45201*/          OPC_CheckChild1Type, MVT::v2i32,
/* 45203*/          OPC_MoveChild2,
/* 45204*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 45207*/          OPC_RecordChild0, // #1 = $Vm
/* 45208*/          OPC_CheckChild0Type, MVT::v2i32,
/* 45210*/          OPC_RecordChild1, // #2 = $lane
/* 45211*/          OPC_MoveChild1,
/* 45212*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45215*/          OPC_MoveParent,
/* 45216*/          OPC_CheckType, MVT::v2i32,
/* 45218*/          OPC_MoveParent,
/* 45219*/          OPC_CheckType, MVT::v2i32,
/* 45221*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45223*/          OPC_EmitConvertToTarget, 2,
/* 45225*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45228*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45231*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1728:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQRDMULHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 45242*/        /*Scope*/ 41, /*->45284*/
/* 45243*/          OPC_CheckChild1Type, MVT::v8i16,
/* 45245*/          OPC_MoveChild2,
/* 45246*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 45249*/          OPC_RecordChild0, // #1 = $Vm
/* 45250*/          OPC_CheckChild0Type, MVT::v4i16,
/* 45252*/          OPC_RecordChild1, // #2 = $lane
/* 45253*/          OPC_MoveChild1,
/* 45254*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45257*/          OPC_MoveParent,
/* 45258*/          OPC_CheckType, MVT::v8i16,
/* 45260*/          OPC_MoveParent,
/* 45261*/          OPC_CheckType, MVT::v8i16,
/* 45263*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45265*/          OPC_EmitConvertToTarget, 2,
/* 45267*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45270*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45273*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1728:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, (ARMvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQRDMULHslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 45284*/        /*Scope*/ 41, /*->45326*/
/* 45285*/          OPC_CheckChild1Type, MVT::v4i32,
/* 45287*/          OPC_MoveChild2,
/* 45288*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 45291*/          OPC_RecordChild0, // #1 = $Vm
/* 45292*/          OPC_CheckChild0Type, MVT::v2i32,
/* 45294*/          OPC_RecordChild1, // #2 = $lane
/* 45295*/          OPC_MoveChild1,
/* 45296*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45299*/          OPC_MoveParent,
/* 45300*/          OPC_CheckType, MVT::v4i32,
/* 45302*/          OPC_MoveParent,
/* 45303*/          OPC_CheckType, MVT::v4i32,
/* 45305*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45307*/          OPC_EmitConvertToTarget, 2,
/* 45309*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45312*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45315*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1728:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, (ARMvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQRDMULHslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 45326*/        0, /*End of Scope*/
/* 45327*/      /*Scope*/ 17|128,1/*145*/, /*->45474*/
/* 45329*/        OPC_MoveChild1,
/* 45330*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 45333*/        OPC_RecordChild0, // #0 = $Vm
/* 45334*/        OPC_Scope, 68, /*->45404*/ // 2 children in Scope
/* 45336*/          OPC_CheckChild0Type, MVT::v4i16,
/* 45338*/          OPC_RecordChild1, // #1 = $lane
/* 45339*/          OPC_MoveChild1,
/* 45340*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45343*/          OPC_MoveParent,
/* 45344*/          OPC_SwitchType /*2 cases */, 27, MVT::v4i16,// ->45374
/* 45347*/            OPC_MoveParent,
/* 45348*/            OPC_RecordChild2, // #2 = $Vn
/* 45349*/            OPC_CheckChild2Type, MVT::v4i16,
/* 45351*/            OPC_CheckType, MVT::v4i16,
/* 45353*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45355*/            OPC_EmitConvertToTarget, 1,
/* 45357*/            OPC_EmitInteger, MVT::i32, 14, 
/* 45360*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45363*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv4i16), 0,
                          MVT::v4i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[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)
/* 45374*/          /*SwitchType*/ 27, MVT::v8i16,// ->45403
/* 45376*/            OPC_MoveParent,
/* 45377*/            OPC_RecordChild2, // #2 = $Vn
/* 45378*/            OPC_CheckChild2Type, MVT::v8i16,
/* 45380*/            OPC_CheckType, MVT::v8i16,
/* 45382*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45384*/            OPC_EmitConvertToTarget, 1,
/* 45386*/            OPC_EmitInteger, MVT::i32, 14, 
/* 45389*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45392*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[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)
/* 45403*/          0, // EndSwitchType
/* 45404*/        /*Scope*/ 68, /*->45473*/
/* 45405*/          OPC_CheckChild0Type, MVT::v2i32,
/* 45407*/          OPC_RecordChild1, // #1 = $lane
/* 45408*/          OPC_MoveChild1,
/* 45409*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45412*/          OPC_MoveParent,
/* 45413*/          OPC_SwitchType /*2 cases */, 27, MVT::v2i32,// ->45443
/* 45416*/            OPC_MoveParent,
/* 45417*/            OPC_RecordChild2, // #2 = $Vn
/* 45418*/            OPC_CheckChild2Type, MVT::v2i32,
/* 45420*/            OPC_CheckType, MVT::v2i32,
/* 45422*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45424*/            OPC_EmitConvertToTarget, 1,
/* 45426*/            OPC_EmitInteger, MVT::i32, 14, 
/* 45429*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45432*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv2i32), 0,
                          MVT::v2i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[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)
/* 45443*/          /*SwitchType*/ 27, MVT::v4i32,// ->45472
/* 45445*/            OPC_MoveParent,
/* 45446*/            OPC_RecordChild2, // #2 = $Vn
/* 45447*/            OPC_CheckChild2Type, MVT::v4i32,
/* 45449*/            OPC_CheckType, MVT::v4i32,
/* 45451*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45453*/            OPC_EmitConvertToTarget, 1,
/* 45455*/            OPC_EmitInteger, MVT::i32, 14, 
/* 45458*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45461*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                      // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[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)
/* 45472*/          0, // EndSwitchType
/* 45473*/        0, /*End of Scope*/
/* 45474*/      /*Scope*/ 119, /*->45594*/
/* 45475*/        OPC_RecordChild1, // #0 = $src1
/* 45476*/        OPC_Scope, 57, /*->45535*/ // 2 children in Scope
/* 45478*/          OPC_CheckChild1Type, MVT::v8i16,
/* 45480*/          OPC_MoveChild2,
/* 45481*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 45484*/          OPC_RecordChild0, // #1 = $src2
/* 45485*/          OPC_CheckChild0Type, MVT::v8i16,
/* 45487*/          OPC_RecordChild1, // #2 = $lane
/* 45488*/          OPC_MoveChild1,
/* 45489*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45492*/          OPC_MoveParent,
/* 45493*/          OPC_CheckType, MVT::v8i16,
/* 45495*/          OPC_MoveParent,
/* 45496*/          OPC_CheckType, MVT::v8i16,
/* 45498*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45500*/          OPC_EmitConvertToTarget, 2,
/* 45502*/          OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/* 45505*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 1, 4,  // Results = #5
/* 45513*/          OPC_EmitConvertToTarget, 2,
/* 45515*/          OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/* 45518*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45521*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45524*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1728:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, (ARMvduplane:{ *:[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))
/* 45535*/        /*Scope*/ 57, /*->45593*/
/* 45536*/          OPC_CheckChild1Type, MVT::v4i32,
/* 45538*/          OPC_MoveChild2,
/* 45539*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 45542*/          OPC_RecordChild0, // #1 = $src2
/* 45543*/          OPC_CheckChild0Type, MVT::v4i32,
/* 45545*/          OPC_RecordChild1, // #2 = $lane
/* 45546*/          OPC_MoveChild1,
/* 45547*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45550*/          OPC_MoveParent,
/* 45551*/          OPC_CheckType, MVT::v4i32,
/* 45553*/          OPC_MoveParent,
/* 45554*/          OPC_CheckType, MVT::v4i32,
/* 45556*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45558*/          OPC_EmitConvertToTarget, 2,
/* 45560*/          OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 45563*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 45571*/          OPC_EmitConvertToTarget, 2,
/* 45573*/          OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 45576*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45579*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45582*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1728:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, (ARMvduplane:{ *:[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))
/* 45593*/        0, /*End of Scope*/
/* 45594*/      /*Scope*/ 115, /*->45710*/
/* 45595*/        OPC_MoveChild1,
/* 45596*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 45599*/        OPC_RecordChild0, // #0 = $src2
/* 45600*/        OPC_Scope, 53, /*->45655*/ // 2 children in Scope
/* 45602*/          OPC_CheckChild0Type, MVT::v8i16,
/* 45604*/          OPC_RecordChild1, // #1 = $lane
/* 45605*/          OPC_MoveChild1,
/* 45606*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45609*/          OPC_MoveParent,
/* 45610*/          OPC_CheckType, MVT::v8i16,
/* 45612*/          OPC_MoveParent,
/* 45613*/          OPC_RecordChild2, // #2 = $src1
/* 45614*/          OPC_CheckChild2Type, MVT::v8i16,
/* 45616*/          OPC_CheckType, MVT::v8i16,
/* 45618*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45620*/          OPC_EmitConvertToTarget, 1,
/* 45622*/          OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/* 45625*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 4,  // Results = #5
/* 45633*/          OPC_EmitConvertToTarget, 1,
/* 45635*/          OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/* 45638*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45641*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45644*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[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))
/* 45655*/        /*Scope*/ 53, /*->45709*/
/* 45656*/          OPC_CheckChild0Type, MVT::v4i32,
/* 45658*/          OPC_RecordChild1, // #1 = $lane
/* 45659*/          OPC_MoveChild1,
/* 45660*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45663*/          OPC_MoveParent,
/* 45664*/          OPC_CheckType, MVT::v4i32,
/* 45666*/          OPC_MoveParent,
/* 45667*/          OPC_RecordChild2, // #2 = $src1
/* 45668*/          OPC_CheckChild2Type, MVT::v4i32,
/* 45670*/          OPC_CheckType, MVT::v4i32,
/* 45672*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45674*/          OPC_EmitConvertToTarget, 1,
/* 45676*/          OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 45679*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i32, 2/*#Ops*/, 0, 4,  // Results = #5
/* 45687*/          OPC_EmitConvertToTarget, 1,
/* 45689*/          OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 45692*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45695*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45698*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHslv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[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))
/* 45709*/        0, /*End of Scope*/
/* 45710*/      /*Scope*/ 103, /*->45814*/
/* 45711*/        OPC_RecordChild1, // #0 = $Vn
/* 45712*/        OPC_SwitchType /*4 cases */, 23, MVT::v4i16,// ->45738
/* 45715*/          OPC_CheckChild1Type, MVT::v4i16,
/* 45717*/          OPC_RecordChild2, // #1 = $Vm
/* 45718*/          OPC_CheckChild2Type, MVT::v4i16,
/* 45720*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45722*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45725*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45728*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHv4i16), 0,
                        MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1728:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                    // Dst: (VQRDMULHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 45738*/        /*SwitchType*/ 23, MVT::v2i32,// ->45763
/* 45740*/          OPC_CheckChild1Type, MVT::v2i32,
/* 45742*/          OPC_RecordChild2, // #1 = $Vm
/* 45743*/          OPC_CheckChild2Type, MVT::v2i32,
/* 45745*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45747*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45750*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45753*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHv2i32), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1728:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                    // Dst: (VQRDMULHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 45763*/        /*SwitchType*/ 23, MVT::v8i16,// ->45788
/* 45765*/          OPC_CheckChild1Type, MVT::v8i16,
/* 45767*/          OPC_RecordChild2, // #1 = $Vm
/* 45768*/          OPC_CheckChild2Type, MVT::v8i16,
/* 45770*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45772*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45775*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45778*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1728:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                    // Dst: (VQRDMULHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 45788*/        /*SwitchType*/ 23, MVT::v4i32,// ->45813
/* 45790*/          OPC_CheckChild1Type, MVT::v4i32,
/* 45792*/          OPC_RecordChild2, // #1 = $Vm
/* 45793*/          OPC_CheckChild2Type, MVT::v4i32,
/* 45795*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45797*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45800*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45803*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMULHv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1728:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                    // Dst: (VQRDMULHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 45813*/        0, // EndSwitchType
/* 45814*/      0, /*End of Scope*/
/* 45815*/    /*Scope*/ 103|128,1/*231*/, /*->46048*/
/* 45817*/      OPC_CheckChild0Integer, 59|128,13/*1723*/, 
/* 45820*/      OPC_Scope, 87, /*->45909*/ // 3 children in Scope
/* 45822*/        OPC_RecordChild1, // #0 = $Vn
/* 45823*/        OPC_Scope, 41, /*->45866*/ // 2 children in Scope
/* 45825*/          OPC_CheckChild1Type, MVT::v4i16,
/* 45827*/          OPC_MoveChild2,
/* 45828*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 45831*/          OPC_RecordChild0, // #1 = $Vm
/* 45832*/          OPC_CheckChild0Type, MVT::v4i16,
/* 45834*/          OPC_RecordChild1, // #2 = $lane
/* 45835*/          OPC_MoveChild1,
/* 45836*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45839*/          OPC_MoveParent,
/* 45840*/          OPC_CheckType, MVT::v4i16,
/* 45842*/          OPC_MoveParent,
/* 45843*/          OPC_CheckType, MVT::v4i32,
/* 45845*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45847*/          OPC_EmitConvertToTarget, 2,
/* 45849*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45852*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45855*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULLslv4i16), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1723:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQDMULLslv4i16:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 45866*/        /*Scope*/ 41, /*->45908*/
/* 45867*/          OPC_CheckChild1Type, MVT::v2i32,
/* 45869*/          OPC_MoveChild2,
/* 45870*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 45873*/          OPC_RecordChild0, // #1 = $Vm
/* 45874*/          OPC_CheckChild0Type, MVT::v2i32,
/* 45876*/          OPC_RecordChild1, // #2 = $lane
/* 45877*/          OPC_MoveChild1,
/* 45878*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45881*/          OPC_MoveParent,
/* 45882*/          OPC_CheckType, MVT::v2i32,
/* 45884*/          OPC_MoveParent,
/* 45885*/          OPC_CheckType, MVT::v2i64,
/* 45887*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45889*/          OPC_EmitConvertToTarget, 2,
/* 45891*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45894*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45897*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULLslv2i32), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1723:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 14
                    // Dst: (VQDMULLslv2i32:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 45908*/        0, /*End of Scope*/
/* 45909*/      /*Scope*/ 83, /*->45993*/
/* 45910*/        OPC_MoveChild1,
/* 45911*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 45914*/        OPC_RecordChild0, // #0 = $Vm
/* 45915*/        OPC_Scope, 37, /*->45954*/ // 2 children in Scope
/* 45917*/          OPC_CheckChild0Type, MVT::v4i16,
/* 45919*/          OPC_RecordChild1, // #1 = $lane
/* 45920*/          OPC_MoveChild1,
/* 45921*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45924*/          OPC_MoveParent,
/* 45925*/          OPC_CheckType, MVT::v4i16,
/* 45927*/          OPC_MoveParent,
/* 45928*/          OPC_RecordChild2, // #2 = $Vn
/* 45929*/          OPC_CheckChild2Type, MVT::v4i16,
/* 45931*/          OPC_CheckType, MVT::v4i32,
/* 45933*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45935*/          OPC_EmitConvertToTarget, 1,
/* 45937*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45940*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45943*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULLslv4i16), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1723:{ *:[iPTR] }, (ARMvduplane:{ *:[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)
/* 45954*/        /*Scope*/ 37, /*->45992*/
/* 45955*/          OPC_CheckChild0Type, MVT::v2i32,
/* 45957*/          OPC_RecordChild1, // #1 = $lane
/* 45958*/          OPC_MoveChild1,
/* 45959*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 45962*/          OPC_MoveParent,
/* 45963*/          OPC_CheckType, MVT::v2i32,
/* 45965*/          OPC_MoveParent,
/* 45966*/          OPC_RecordChild2, // #2 = $Vn
/* 45967*/          OPC_CheckChild2Type, MVT::v2i32,
/* 45969*/          OPC_CheckType, MVT::v2i64,
/* 45971*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 45973*/          OPC_EmitConvertToTarget, 1,
/* 45975*/          OPC_EmitInteger, MVT::i32, 14, 
/* 45978*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 45981*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULLslv2i32), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1723:{ *:[iPTR] }, (ARMvduplane:{ *:[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)
/* 45992*/        0, /*End of Scope*/
/* 45993*/      /*Scope*/ 53, /*->46047*/
/* 45994*/        OPC_RecordChild1, // #0 = $Vn
/* 45995*/        OPC_SwitchType /*2 cases */, 23, MVT::v4i32,// ->46021
/* 45998*/          OPC_CheckChild1Type, MVT::v4i16,
/* 46000*/          OPC_RecordChild2, // #1 = $Vm
/* 46001*/          OPC_CheckChild2Type, MVT::v4i16,
/* 46003*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 46005*/          OPC_EmitInteger, MVT::i32, 14, 
/* 46008*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46011*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULLv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1723:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                    // Dst: (VQDMULLv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 46021*/        /*SwitchType*/ 23, MVT::v2i64,// ->46046
/* 46023*/          OPC_CheckChild1Type, MVT::v2i32,
/* 46025*/          OPC_RecordChild2, // #1 = $Vm
/* 46026*/          OPC_CheckChild2Type, MVT::v2i32,
/* 46028*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 46030*/          OPC_EmitInteger, MVT::i32, 14, 
/* 46033*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46036*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMULLv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1723:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                    // Dst: (VQDMULLv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 46046*/        0, // EndSwitchType
/* 46047*/      0, /*End of Scope*/
/* 46048*/    /*Scope*/ 117|128,1/*245*/, /*->46295*/
/* 46050*/      OPC_CheckChild0Integer, 12|128,12/*1548*/, 
/* 46053*/      OPC_RecordChild1, // #0 = $Qm
/* 46054*/      OPC_SwitchType /*5 cases */, 57, MVT::v16i8,// ->46114
/* 46057*/        OPC_CheckChild1Type, MVT::v16i8,
/* 46059*/        OPC_RecordChild2, // #1 = $Qn
/* 46060*/        OPC_CheckChild2Type, MVT::v16i8,
/* 46062*/        OPC_Scope, 24, /*->46088*/ // 2 children in Scope
/* 46064*/          OPC_CheckChild3Integer, 0, 
/* 46066*/          OPC_RecordChild4, // #2 = $mask
/* 46067*/          OPC_CheckChild4Type, MVT::v16i1,
/* 46069*/          OPC_RecordChild5, // #3 = $inactive
/* 46070*/          OPC_CheckChild5Type, MVT::v16i8,
/* 46072*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46074*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46077*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1548:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMINs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 46088*/        /*Scope*/ 24, /*->46113*/
/* 46089*/          OPC_CheckChild3Integer, 1, 
/* 46091*/          OPC_RecordChild4, // #2 = $mask
/* 46092*/          OPC_CheckChild4Type, MVT::v16i1,
/* 46094*/          OPC_RecordChild5, // #3 = $inactive
/* 46095*/          OPC_CheckChild5Type, MVT::v16i8,
/* 46097*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46099*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46102*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1548:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMINu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 46113*/        0, /*End of Scope*/
/* 46114*/      /*SwitchType*/ 57, MVT::v8i16,// ->46173
/* 46116*/        OPC_CheckChild1Type, MVT::v8i16,
/* 46118*/        OPC_RecordChild2, // #1 = $Qn
/* 46119*/        OPC_CheckChild2Type, MVT::v8i16,
/* 46121*/        OPC_Scope, 24, /*->46147*/ // 2 children in Scope
/* 46123*/          OPC_CheckChild3Integer, 0, 
/* 46125*/          OPC_RecordChild4, // #2 = $mask
/* 46126*/          OPC_CheckChild4Type, MVT::v8i1,
/* 46128*/          OPC_RecordChild5, // #3 = $inactive
/* 46129*/          OPC_CheckChild5Type, MVT::v8i16,
/* 46131*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46133*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46136*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1548:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMINs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 46147*/        /*Scope*/ 24, /*->46172*/
/* 46148*/          OPC_CheckChild3Integer, 1, 
/* 46150*/          OPC_RecordChild4, // #2 = $mask
/* 46151*/          OPC_CheckChild4Type, MVT::v8i1,
/* 46153*/          OPC_RecordChild5, // #3 = $inactive
/* 46154*/          OPC_CheckChild5Type, MVT::v8i16,
/* 46156*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46158*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46161*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1548:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMINu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 46172*/        0, /*End of Scope*/
/* 46173*/      /*SwitchType*/ 57, MVT::v4i32,// ->46232
/* 46175*/        OPC_CheckChild1Type, MVT::v4i32,
/* 46177*/        OPC_RecordChild2, // #1 = $Qn
/* 46178*/        OPC_CheckChild2Type, MVT::v4i32,
/* 46180*/        OPC_Scope, 24, /*->46206*/ // 2 children in Scope
/* 46182*/          OPC_CheckChild3Integer, 0, 
/* 46184*/          OPC_RecordChild4, // #2 = $mask
/* 46185*/          OPC_CheckChild4Type, MVT::v4i1,
/* 46187*/          OPC_RecordChild5, // #3 = $inactive
/* 46188*/          OPC_CheckChild5Type, MVT::v4i32,
/* 46190*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46192*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46195*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1548:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMINs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 46206*/        /*Scope*/ 24, /*->46231*/
/* 46207*/          OPC_CheckChild3Integer, 1, 
/* 46209*/          OPC_RecordChild4, // #2 = $mask
/* 46210*/          OPC_CheckChild4Type, MVT::v4i1,
/* 46212*/          OPC_RecordChild5, // #3 = $inactive
/* 46213*/          OPC_CheckChild5Type, MVT::v4i32,
/* 46215*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46217*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46220*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1548:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMINu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 46231*/        0, /*End of Scope*/
/* 46232*/      /*SwitchType*/ 29, MVT::v4f32,// ->46263
/* 46234*/        OPC_CheckChild1Type, MVT::v4f32,
/* 46236*/        OPC_RecordChild2, // #1 = $val2
/* 46237*/        OPC_CheckChild2Type, MVT::v4f32,
/* 46239*/        OPC_CheckChild3Integer, 0, 
/* 46241*/        OPC_RecordChild4, // #2 = $mask
/* 46242*/        OPC_CheckChild4Type, MVT::v4i1,
/* 46244*/        OPC_RecordChild5, // #3 = $inactive
/* 46245*/        OPC_CheckChild5Type, MVT::v4f32,
/* 46247*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 46249*/        OPC_EmitInteger, MVT::i32, 1, 
/* 46252*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINNMf32), 0,
                      MVT::v4f32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1548:{ *:[iPTR] }, MQPR:{ *:[v4f32] }:$val1, MQPR:{ *:[v4f32] }:$val2, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4f32] }:$inactive) - Complexity = 13
                  // Dst: (MVE_VMINNMf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1, MQPR:{ *:[v4f32] }:$val2, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4f32] }:$inactive)
/* 46263*/      /*SwitchType*/ 29, MVT::v8f16,// ->46294
/* 46265*/        OPC_CheckChild1Type, MVT::v8f16,
/* 46267*/        OPC_RecordChild2, // #1 = $val2
/* 46268*/        OPC_CheckChild2Type, MVT::v8f16,
/* 46270*/        OPC_CheckChild3Integer, 0, 
/* 46272*/        OPC_RecordChild4, // #2 = $mask
/* 46273*/        OPC_CheckChild4Type, MVT::v8i1,
/* 46275*/        OPC_RecordChild5, // #3 = $inactive
/* 46276*/        OPC_CheckChild5Type, MVT::v8f16,
/* 46278*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 46280*/        OPC_EmitInteger, MVT::i32, 1, 
/* 46283*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINNMf16), 0,
                      MVT::v8f16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1548:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$val1, MQPR:{ *:[v8f16] }:$val2, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8f16] }:$inactive) - Complexity = 13
                  // Dst: (MVE_VMINNMf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1, MQPR:{ *:[v8f16] }:$val2, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8f16] }:$inactive)
/* 46294*/      0, // EndSwitchType
/* 46295*/    /*Scope*/ 117|128,1/*245*/, /*->46542*/
/* 46297*/      OPC_CheckChild0Integer, 9|128,12/*1545*/, 
/* 46300*/      OPC_RecordChild1, // #0 = $Qm
/* 46301*/      OPC_SwitchType /*5 cases */, 57, MVT::v16i8,// ->46361
/* 46304*/        OPC_CheckChild1Type, MVT::v16i8,
/* 46306*/        OPC_RecordChild2, // #1 = $Qn
/* 46307*/        OPC_CheckChild2Type, MVT::v16i8,
/* 46309*/        OPC_Scope, 24, /*->46335*/ // 2 children in Scope
/* 46311*/          OPC_CheckChild3Integer, 0, 
/* 46313*/          OPC_RecordChild4, // #2 = $mask
/* 46314*/          OPC_CheckChild4Type, MVT::v16i1,
/* 46316*/          OPC_RecordChild5, // #3 = $inactive
/* 46317*/          OPC_CheckChild5Type, MVT::v16i8,
/* 46319*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46321*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46324*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1545:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMAXs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 46335*/        /*Scope*/ 24, /*->46360*/
/* 46336*/          OPC_CheckChild3Integer, 1, 
/* 46338*/          OPC_RecordChild4, // #2 = $mask
/* 46339*/          OPC_CheckChild4Type, MVT::v16i1,
/* 46341*/          OPC_RecordChild5, // #3 = $inactive
/* 46342*/          OPC_CheckChild5Type, MVT::v16i8,
/* 46344*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46346*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46349*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1545:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMAXu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 46360*/        0, /*End of Scope*/
/* 46361*/      /*SwitchType*/ 57, MVT::v8i16,// ->46420
/* 46363*/        OPC_CheckChild1Type, MVT::v8i16,
/* 46365*/        OPC_RecordChild2, // #1 = $Qn
/* 46366*/        OPC_CheckChild2Type, MVT::v8i16,
/* 46368*/        OPC_Scope, 24, /*->46394*/ // 2 children in Scope
/* 46370*/          OPC_CheckChild3Integer, 0, 
/* 46372*/          OPC_RecordChild4, // #2 = $mask
/* 46373*/          OPC_CheckChild4Type, MVT::v8i1,
/* 46375*/          OPC_RecordChild5, // #3 = $inactive
/* 46376*/          OPC_CheckChild5Type, MVT::v8i16,
/* 46378*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46380*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46383*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1545:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMAXs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 46394*/        /*Scope*/ 24, /*->46419*/
/* 46395*/          OPC_CheckChild3Integer, 1, 
/* 46397*/          OPC_RecordChild4, // #2 = $mask
/* 46398*/          OPC_CheckChild4Type, MVT::v8i1,
/* 46400*/          OPC_RecordChild5, // #3 = $inactive
/* 46401*/          OPC_CheckChild5Type, MVT::v8i16,
/* 46403*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46405*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46408*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1545:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMAXu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 46419*/        0, /*End of Scope*/
/* 46420*/      /*SwitchType*/ 57, MVT::v4i32,// ->46479
/* 46422*/        OPC_CheckChild1Type, MVT::v4i32,
/* 46424*/        OPC_RecordChild2, // #1 = $Qn
/* 46425*/        OPC_CheckChild2Type, MVT::v4i32,
/* 46427*/        OPC_Scope, 24, /*->46453*/ // 2 children in Scope
/* 46429*/          OPC_CheckChild3Integer, 0, 
/* 46431*/          OPC_RecordChild4, // #2 = $mask
/* 46432*/          OPC_CheckChild4Type, MVT::v4i1,
/* 46434*/          OPC_RecordChild5, // #3 = $inactive
/* 46435*/          OPC_CheckChild5Type, MVT::v4i32,
/* 46437*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46439*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46442*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1545:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMAXs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 46453*/        /*Scope*/ 24, /*->46478*/
/* 46454*/          OPC_CheckChild3Integer, 1, 
/* 46456*/          OPC_RecordChild4, // #2 = $mask
/* 46457*/          OPC_CheckChild4Type, MVT::v4i1,
/* 46459*/          OPC_RecordChild5, // #3 = $inactive
/* 46460*/          OPC_CheckChild5Type, MVT::v4i32,
/* 46462*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46464*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46467*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1545:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMAXu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 46478*/        0, /*End of Scope*/
/* 46479*/      /*SwitchType*/ 29, MVT::v4f32,// ->46510
/* 46481*/        OPC_CheckChild1Type, MVT::v4f32,
/* 46483*/        OPC_RecordChild2, // #1 = $val2
/* 46484*/        OPC_CheckChild2Type, MVT::v4f32,
/* 46486*/        OPC_CheckChild3Integer, 0, 
/* 46488*/        OPC_RecordChild4, // #2 = $mask
/* 46489*/        OPC_CheckChild4Type, MVT::v4i1,
/* 46491*/        OPC_RecordChild5, // #3 = $inactive
/* 46492*/        OPC_CheckChild5Type, MVT::v4f32,
/* 46494*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 46496*/        OPC_EmitInteger, MVT::i32, 1, 
/* 46499*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXNMf32), 0,
                      MVT::v4f32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1545:{ *:[iPTR] }, MQPR:{ *:[v4f32] }:$val1, MQPR:{ *:[v4f32] }:$val2, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4f32] }:$inactive) - Complexity = 13
                  // Dst: (MVE_VMAXNMf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1, MQPR:{ *:[v4f32] }:$val2, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4f32] }:$inactive)
/* 46510*/      /*SwitchType*/ 29, MVT::v8f16,// ->46541
/* 46512*/        OPC_CheckChild1Type, MVT::v8f16,
/* 46514*/        OPC_RecordChild2, // #1 = $val2
/* 46515*/        OPC_CheckChild2Type, MVT::v8f16,
/* 46517*/        OPC_CheckChild3Integer, 0, 
/* 46519*/        OPC_RecordChild4, // #2 = $mask
/* 46520*/        OPC_CheckChild4Type, MVT::v8i1,
/* 46522*/        OPC_RecordChild5, // #3 = $inactive
/* 46523*/        OPC_CheckChild5Type, MVT::v8f16,
/* 46525*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 46527*/        OPC_EmitInteger, MVT::i32, 1, 
/* 46530*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXNMf16), 0,
                      MVT::v8f16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1545:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$val1, MQPR:{ *:[v8f16] }:$val2, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8f16] }:$inactive) - Complexity = 13
                  // Dst: (MVE_VMAXNMf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1, MQPR:{ *:[v8f16] }:$val2, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8f16] }:$inactive)
/* 46541*/      0, // EndSwitchType
/* 46542*/    /*Scope*/ 55|128,1/*183*/, /*->46727*/
/* 46544*/      OPC_CheckChild0Integer, 23|128,12/*1559*/, 
/* 46547*/      OPC_RecordChild1, // #0 = $Qm
/* 46548*/      OPC_SwitchType /*3 cases */, 57, MVT::v16i8,// ->46608
/* 46551*/        OPC_CheckChild1Type, MVT::v16i8,
/* 46553*/        OPC_RecordChild2, // #1 = $Qn
/* 46554*/        OPC_CheckChild2Type, MVT::v16i8,
/* 46556*/        OPC_Scope, 24, /*->46582*/ // 2 children in Scope
/* 46558*/          OPC_CheckChild3Integer, 0, 
/* 46560*/          OPC_RecordChild4, // #2 = $mask
/* 46561*/          OPC_CheckChild4Type, MVT::v16i1,
/* 46563*/          OPC_RecordChild5, // #3 = $inactive
/* 46564*/          OPC_CheckChild5Type, MVT::v16i8,
/* 46566*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46568*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46571*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQADDs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1559:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VQADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 46582*/        /*Scope*/ 24, /*->46607*/
/* 46583*/          OPC_CheckChild3Integer, 1, 
/* 46585*/          OPC_RecordChild4, // #2 = $mask
/* 46586*/          OPC_CheckChild4Type, MVT::v16i1,
/* 46588*/          OPC_RecordChild5, // #3 = $inactive
/* 46589*/          OPC_CheckChild5Type, MVT::v16i8,
/* 46591*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46593*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46596*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQADDu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1559:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VQADDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 46607*/        0, /*End of Scope*/
/* 46608*/      /*SwitchType*/ 57, MVT::v8i16,// ->46667
/* 46610*/        OPC_CheckChild1Type, MVT::v8i16,
/* 46612*/        OPC_RecordChild2, // #1 = $Qn
/* 46613*/        OPC_CheckChild2Type, MVT::v8i16,
/* 46615*/        OPC_Scope, 24, /*->46641*/ // 2 children in Scope
/* 46617*/          OPC_CheckChild3Integer, 0, 
/* 46619*/          OPC_RecordChild4, // #2 = $mask
/* 46620*/          OPC_CheckChild4Type, MVT::v8i1,
/* 46622*/          OPC_RecordChild5, // #3 = $inactive
/* 46623*/          OPC_CheckChild5Type, MVT::v8i16,
/* 46625*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46627*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46630*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQADDs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1559:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VQADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 46641*/        /*Scope*/ 24, /*->46666*/
/* 46642*/          OPC_CheckChild3Integer, 1, 
/* 46644*/          OPC_RecordChild4, // #2 = $mask
/* 46645*/          OPC_CheckChild4Type, MVT::v8i1,
/* 46647*/          OPC_RecordChild5, // #3 = $inactive
/* 46648*/          OPC_CheckChild5Type, MVT::v8i16,
/* 46650*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46652*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46655*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQADDu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1559:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VQADDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 46666*/        0, /*End of Scope*/
/* 46667*/      /*SwitchType*/ 57, MVT::v4i32,// ->46726
/* 46669*/        OPC_CheckChild1Type, MVT::v4i32,
/* 46671*/        OPC_RecordChild2, // #1 = $Qn
/* 46672*/        OPC_CheckChild2Type, MVT::v4i32,
/* 46674*/        OPC_Scope, 24, /*->46700*/ // 2 children in Scope
/* 46676*/          OPC_CheckChild3Integer, 0, 
/* 46678*/          OPC_RecordChild4, // #2 = $mask
/* 46679*/          OPC_CheckChild4Type, MVT::v4i1,
/* 46681*/          OPC_RecordChild5, // #3 = $inactive
/* 46682*/          OPC_CheckChild5Type, MVT::v4i32,
/* 46684*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46686*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46689*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQADDs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1559:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VQADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 46700*/        /*Scope*/ 24, /*->46725*/
/* 46701*/          OPC_CheckChild3Integer, 1, 
/* 46703*/          OPC_RecordChild4, // #2 = $mask
/* 46704*/          OPC_CheckChild4Type, MVT::v4i1,
/* 46706*/          OPC_RecordChild5, // #3 = $inactive
/* 46707*/          OPC_CheckChild5Type, MVT::v4i32,
/* 46709*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46711*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46714*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQADDu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1559:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VQADDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 46725*/        0, /*End of Scope*/
/* 46726*/      0, // EndSwitchType
/* 46727*/    /*Scope*/ 55|128,1/*183*/, /*->46912*/
/* 46729*/      OPC_CheckChild0Integer, 26|128,12/*1562*/, 
/* 46732*/      OPC_RecordChild1, // #0 = $Qm
/* 46733*/      OPC_SwitchType /*3 cases */, 57, MVT::v16i8,// ->46793
/* 46736*/        OPC_CheckChild1Type, MVT::v16i8,
/* 46738*/        OPC_RecordChild2, // #1 = $Qn
/* 46739*/        OPC_CheckChild2Type, MVT::v16i8,
/* 46741*/        OPC_Scope, 24, /*->46767*/ // 2 children in Scope
/* 46743*/          OPC_CheckChild3Integer, 0, 
/* 46745*/          OPC_RecordChild4, // #2 = $mask
/* 46746*/          OPC_CheckChild4Type, MVT::v16i1,
/* 46748*/          OPC_RecordChild5, // #3 = $inactive
/* 46749*/          OPC_CheckChild5Type, MVT::v16i8,
/* 46751*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46753*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46756*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSUBs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1562:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VQSUBs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 46767*/        /*Scope*/ 24, /*->46792*/
/* 46768*/          OPC_CheckChild3Integer, 1, 
/* 46770*/          OPC_RecordChild4, // #2 = $mask
/* 46771*/          OPC_CheckChild4Type, MVT::v16i1,
/* 46773*/          OPC_RecordChild5, // #3 = $inactive
/* 46774*/          OPC_CheckChild5Type, MVT::v16i8,
/* 46776*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46778*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46781*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSUBu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1562:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VQSUBu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 46792*/        0, /*End of Scope*/
/* 46793*/      /*SwitchType*/ 57, MVT::v8i16,// ->46852
/* 46795*/        OPC_CheckChild1Type, MVT::v8i16,
/* 46797*/        OPC_RecordChild2, // #1 = $Qn
/* 46798*/        OPC_CheckChild2Type, MVT::v8i16,
/* 46800*/        OPC_Scope, 24, /*->46826*/ // 2 children in Scope
/* 46802*/          OPC_CheckChild3Integer, 0, 
/* 46804*/          OPC_RecordChild4, // #2 = $mask
/* 46805*/          OPC_CheckChild4Type, MVT::v8i1,
/* 46807*/          OPC_RecordChild5, // #3 = $inactive
/* 46808*/          OPC_CheckChild5Type, MVT::v8i16,
/* 46810*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46812*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46815*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSUBs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1562:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VQSUBs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 46826*/        /*Scope*/ 24, /*->46851*/
/* 46827*/          OPC_CheckChild3Integer, 1, 
/* 46829*/          OPC_RecordChild4, // #2 = $mask
/* 46830*/          OPC_CheckChild4Type, MVT::v8i1,
/* 46832*/          OPC_RecordChild5, // #3 = $inactive
/* 46833*/          OPC_CheckChild5Type, MVT::v8i16,
/* 46835*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46837*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46840*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSUBu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1562:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VQSUBu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 46851*/        0, /*End of Scope*/
/* 46852*/      /*SwitchType*/ 57, MVT::v4i32,// ->46911
/* 46854*/        OPC_CheckChild1Type, MVT::v4i32,
/* 46856*/        OPC_RecordChild2, // #1 = $Qn
/* 46857*/        OPC_CheckChild2Type, MVT::v4i32,
/* 46859*/        OPC_Scope, 24, /*->46885*/ // 2 children in Scope
/* 46861*/          OPC_CheckChild3Integer, 0, 
/* 46863*/          OPC_RecordChild4, // #2 = $mask
/* 46864*/          OPC_CheckChild4Type, MVT::v4i1,
/* 46866*/          OPC_RecordChild5, // #3 = $inactive
/* 46867*/          OPC_CheckChild5Type, MVT::v4i32,
/* 46869*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46871*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46874*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSUBs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1562:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VQSUBs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 46885*/        /*Scope*/ 24, /*->46910*/
/* 46886*/          OPC_CheckChild3Integer, 1, 
/* 46888*/          OPC_RecordChild4, // #2 = $mask
/* 46889*/          OPC_CheckChild4Type, MVT::v4i1,
/* 46891*/          OPC_RecordChild5, // #3 = $inactive
/* 46892*/          OPC_CheckChild5Type, MVT::v4i32,
/* 46894*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46896*/          OPC_EmitInteger, MVT::i32, 1, 
/* 46899*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSUBu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1562:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VQSUBu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 46910*/        0, /*End of Scope*/
/* 46911*/      0, // EndSwitchType
/* 46912*/    /*Scope*/ 13|128,2/*269*/, /*->47183*/
/* 46914*/      OPC_CheckChild0Integer, 46|128,12/*1582*/, 
/* 46917*/      OPC_RecordChild1, // #0 = $Qm
/* 46918*/      OPC_SwitchType /*5 cases */, 63, MVT::v16i8,// ->46984
/* 46921*/        OPC_CheckChild1Type, MVT::v16i8,
/* 46923*/        OPC_RecordChild2, // #1 = $Qn
/* 46924*/        OPC_CheckChild2Type, MVT::v16i8,
/* 46926*/        OPC_Scope, 27, /*->46955*/ // 2 children in Scope
/* 46928*/          OPC_CheckChild3Integer, 0, 
/* 46930*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46932*/          OPC_EmitInteger, MVT::i32, 0, 
/* 46935*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46938*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 46944*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1582:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VABDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 46955*/        /*Scope*/ 27, /*->46983*/
/* 46956*/          OPC_CheckChild3Integer, 1, 
/* 46958*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46960*/          OPC_EmitInteger, MVT::i32, 0, 
/* 46963*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 46966*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 46972*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1582:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VABDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 46983*/        0, /*End of Scope*/
/* 46984*/      /*SwitchType*/ 63, MVT::v8i16,// ->47049
/* 46986*/        OPC_CheckChild1Type, MVT::v8i16,
/* 46988*/        OPC_RecordChild2, // #1 = $Qn
/* 46989*/        OPC_CheckChild2Type, MVT::v8i16,
/* 46991*/        OPC_Scope, 27, /*->47020*/ // 2 children in Scope
/* 46993*/          OPC_CheckChild3Integer, 0, 
/* 46995*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 46997*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47000*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47003*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47009*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1582:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VABDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 47020*/        /*Scope*/ 27, /*->47048*/
/* 47021*/          OPC_CheckChild3Integer, 1, 
/* 47023*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47025*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47028*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47031*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47037*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1582:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VABDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 47048*/        0, /*End of Scope*/
/* 47049*/      /*SwitchType*/ 63, MVT::v4i32,// ->47114
/* 47051*/        OPC_CheckChild1Type, MVT::v4i32,
/* 47053*/        OPC_RecordChild2, // #1 = $Qn
/* 47054*/        OPC_CheckChild2Type, MVT::v4i32,
/* 47056*/        OPC_Scope, 27, /*->47085*/ // 2 children in Scope
/* 47058*/          OPC_CheckChild3Integer, 0, 
/* 47060*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47062*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47065*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47068*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47074*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1582:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VABDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 47085*/        /*Scope*/ 27, /*->47113*/
/* 47086*/          OPC_CheckChild3Integer, 1, 
/* 47088*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47090*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47093*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47096*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47102*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1582:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VABDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 47113*/        0, /*End of Scope*/
/* 47114*/      /*SwitchType*/ 32, MVT::v4f32,// ->47148
/* 47116*/        OPC_CheckChild1Type, MVT::v4f32,
/* 47118*/        OPC_RecordChild2, // #1 = $Qn
/* 47119*/        OPC_CheckChild2Type, MVT::v4f32,
/* 47121*/        OPC_CheckChild3Integer, 0, 
/* 47123*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 47125*/        OPC_EmitInteger, MVT::i32, 0, 
/* 47128*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47131*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47137*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDf32), 0,
                      MVT::v4f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1582:{ *:[iPTR] }, MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                  // Dst: (MVE_VABDf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
/* 47148*/      /*SwitchType*/ 32, MVT::v8f16,// ->47182
/* 47150*/        OPC_CheckChild1Type, MVT::v8f16,
/* 47152*/        OPC_RecordChild2, // #1 = $Qn
/* 47153*/        OPC_CheckChild2Type, MVT::v8f16,
/* 47155*/        OPC_CheckChild3Integer, 0, 
/* 47157*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 47159*/        OPC_EmitInteger, MVT::i32, 0, 
/* 47162*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47165*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47171*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDf16), 0,
                      MVT::v8f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1582:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                  // Dst: (MVE_VABDf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
/* 47182*/      0, // EndSwitchType
/* 47183*/    /*Scope*/ 117|128,1/*245*/, /*->47430*/
/* 47185*/      OPC_CheckChild0Integer, 0|128,12/*1536*/, 
/* 47188*/      OPC_RecordChild1, // #0 = $Qm
/* 47189*/      OPC_SwitchType /*5 cases */, 57, MVT::v16i8,// ->47249
/* 47192*/        OPC_CheckChild1Type, MVT::v16i8,
/* 47194*/        OPC_RecordChild2, // #1 = $Qn
/* 47195*/        OPC_CheckChild2Type, MVT::v16i8,
/* 47197*/        OPC_Scope, 24, /*->47223*/ // 2 children in Scope
/* 47199*/          OPC_CheckChild3Integer, 0, 
/* 47201*/          OPC_RecordChild4, // #2 = $mask
/* 47202*/          OPC_CheckChild4Type, MVT::v16i1,
/* 47204*/          OPC_RecordChild5, // #3 = $inactive
/* 47205*/          OPC_CheckChild5Type, MVT::v16i8,
/* 47207*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47209*/          OPC_EmitInteger, MVT::i32, 1, 
/* 47212*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VABDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 47223*/        /*Scope*/ 24, /*->47248*/
/* 47224*/          OPC_CheckChild3Integer, 1, 
/* 47226*/          OPC_RecordChild4, // #2 = $mask
/* 47227*/          OPC_CheckChild4Type, MVT::v16i1,
/* 47229*/          OPC_RecordChild5, // #3 = $inactive
/* 47230*/          OPC_CheckChild5Type, MVT::v16i8,
/* 47232*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47234*/          OPC_EmitInteger, MVT::i32, 1, 
/* 47237*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1536:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VABDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 47248*/        0, /*End of Scope*/
/* 47249*/      /*SwitchType*/ 57, MVT::v8i16,// ->47308
/* 47251*/        OPC_CheckChild1Type, MVT::v8i16,
/* 47253*/        OPC_RecordChild2, // #1 = $Qn
/* 47254*/        OPC_CheckChild2Type, MVT::v8i16,
/* 47256*/        OPC_Scope, 24, /*->47282*/ // 2 children in Scope
/* 47258*/          OPC_CheckChild3Integer, 0, 
/* 47260*/          OPC_RecordChild4, // #2 = $mask
/* 47261*/          OPC_CheckChild4Type, MVT::v8i1,
/* 47263*/          OPC_RecordChild5, // #3 = $inactive
/* 47264*/          OPC_CheckChild5Type, MVT::v8i16,
/* 47266*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47268*/          OPC_EmitInteger, MVT::i32, 1, 
/* 47271*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VABDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 47282*/        /*Scope*/ 24, /*->47307*/
/* 47283*/          OPC_CheckChild3Integer, 1, 
/* 47285*/          OPC_RecordChild4, // #2 = $mask
/* 47286*/          OPC_CheckChild4Type, MVT::v8i1,
/* 47288*/          OPC_RecordChild5, // #3 = $inactive
/* 47289*/          OPC_CheckChild5Type, MVT::v8i16,
/* 47291*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47293*/          OPC_EmitInteger, MVT::i32, 1, 
/* 47296*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1536:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VABDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 47307*/        0, /*End of Scope*/
/* 47308*/      /*SwitchType*/ 57, MVT::v4i32,// ->47367
/* 47310*/        OPC_CheckChild1Type, MVT::v4i32,
/* 47312*/        OPC_RecordChild2, // #1 = $Qn
/* 47313*/        OPC_CheckChild2Type, MVT::v4i32,
/* 47315*/        OPC_Scope, 24, /*->47341*/ // 2 children in Scope
/* 47317*/          OPC_CheckChild3Integer, 0, 
/* 47319*/          OPC_RecordChild4, // #2 = $mask
/* 47320*/          OPC_CheckChild4Type, MVT::v4i1,
/* 47322*/          OPC_RecordChild5, // #3 = $inactive
/* 47323*/          OPC_CheckChild5Type, MVT::v4i32,
/* 47325*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47327*/          OPC_EmitInteger, MVT::i32, 1, 
/* 47330*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1536:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VABDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 47341*/        /*Scope*/ 24, /*->47366*/
/* 47342*/          OPC_CheckChild3Integer, 1, 
/* 47344*/          OPC_RecordChild4, // #2 = $mask
/* 47345*/          OPC_CheckChild4Type, MVT::v4i1,
/* 47347*/          OPC_RecordChild5, // #3 = $inactive
/* 47348*/          OPC_CheckChild5Type, MVT::v4i32,
/* 47350*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47352*/          OPC_EmitInteger, MVT::i32, 1, 
/* 47355*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1536:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VABDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 47366*/        0, /*End of Scope*/
/* 47367*/      /*SwitchType*/ 29, MVT::v4f32,// ->47398
/* 47369*/        OPC_CheckChild1Type, MVT::v4f32,
/* 47371*/        OPC_RecordChild2, // #1 = $Qn
/* 47372*/        OPC_CheckChild2Type, MVT::v4f32,
/* 47374*/        OPC_CheckChild3Integer, 0, 
/* 47376*/        OPC_RecordChild4, // #2 = $mask
/* 47377*/        OPC_CheckChild4Type, MVT::v4i1,
/* 47379*/        OPC_RecordChild5, // #3 = $inactive
/* 47380*/        OPC_CheckChild5Type, MVT::v4f32,
/* 47382*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 47384*/        OPC_EmitInteger, MVT::i32, 1, 
/* 47387*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDf32), 0,
                      MVT::v4f32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1536:{ *:[iPTR] }, MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4f32] }:$inactive) - Complexity = 13
                  // Dst: (MVE_VABDf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4f32] }:$inactive)
/* 47398*/      /*SwitchType*/ 29, MVT::v8f16,// ->47429
/* 47400*/        OPC_CheckChild1Type, MVT::v8f16,
/* 47402*/        OPC_RecordChild2, // #1 = $Qn
/* 47403*/        OPC_CheckChild2Type, MVT::v8f16,
/* 47405*/        OPC_CheckChild3Integer, 0, 
/* 47407*/        OPC_RecordChild4, // #2 = $mask
/* 47408*/        OPC_CheckChild4Type, MVT::v8i1,
/* 47410*/        OPC_RecordChild5, // #3 = $inactive
/* 47411*/        OPC_CheckChild5Type, MVT::v8f16,
/* 47413*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 47415*/        OPC_EmitInteger, MVT::i32, 1, 
/* 47418*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABDf16), 0,
                      MVT::v8f16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1536:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8f16] }:$inactive) - Complexity = 13
                  // Dst: (MVE_VABDf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8f16] }:$inactive)
/* 47429*/      0, // EndSwitchType
/* 47430*/    /*Scope*/ 73|128,1/*201*/, /*->47633*/
/* 47432*/      OPC_CheckChild0Integer, 84|128,12/*1620*/, 
/* 47435*/      OPC_RecordChild1, // #0 = $Qm
/* 47436*/      OPC_SwitchType /*3 cases */, 63, MVT::v16i8,// ->47502
/* 47439*/        OPC_CheckChild1Type, MVT::v16i8,
/* 47441*/        OPC_RecordChild2, // #1 = $Qn
/* 47442*/        OPC_CheckChild2Type, MVT::v16i8,
/* 47444*/        OPC_Scope, 27, /*->47473*/ // 2 children in Scope
/* 47446*/          OPC_CheckChild3Integer, 0, 
/* 47448*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47450*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47453*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47456*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47462*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRHADDs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1620:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VRHADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 47473*/        /*Scope*/ 27, /*->47501*/
/* 47474*/          OPC_CheckChild3Integer, 1, 
/* 47476*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47478*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47481*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47484*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47490*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRHADDu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1620:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VRHADDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 47501*/        0, /*End of Scope*/
/* 47502*/      /*SwitchType*/ 63, MVT::v8i16,// ->47567
/* 47504*/        OPC_CheckChild1Type, MVT::v8i16,
/* 47506*/        OPC_RecordChild2, // #1 = $Qn
/* 47507*/        OPC_CheckChild2Type, MVT::v8i16,
/* 47509*/        OPC_Scope, 27, /*->47538*/ // 2 children in Scope
/* 47511*/          OPC_CheckChild3Integer, 0, 
/* 47513*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47515*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47518*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47521*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47527*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRHADDs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1620:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VRHADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 47538*/        /*Scope*/ 27, /*->47566*/
/* 47539*/          OPC_CheckChild3Integer, 1, 
/* 47541*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47543*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47546*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47549*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47555*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRHADDu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1620:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VRHADDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 47566*/        0, /*End of Scope*/
/* 47567*/      /*SwitchType*/ 63, MVT::v4i32,// ->47632
/* 47569*/        OPC_CheckChild1Type, MVT::v4i32,
/* 47571*/        OPC_RecordChild2, // #1 = $Qn
/* 47572*/        OPC_CheckChild2Type, MVT::v4i32,
/* 47574*/        OPC_Scope, 27, /*->47603*/ // 2 children in Scope
/* 47576*/          OPC_CheckChild3Integer, 0, 
/* 47578*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47580*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47583*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47586*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47592*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRHADDs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1620:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VRHADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 47603*/        /*Scope*/ 27, /*->47631*/
/* 47604*/          OPC_CheckChild3Integer, 1, 
/* 47606*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47608*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47611*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47614*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47620*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRHADDu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1620:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VRHADDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 47631*/        0, /*End of Scope*/
/* 47632*/      0, // EndSwitchType
/* 47633*/    /*Scope*/ 55|128,1/*183*/, /*->47818*/
/* 47635*/      OPC_CheckChild0Integer, 27|128,12/*1563*/, 
/* 47638*/      OPC_RecordChild1, // #0 = $Qm
/* 47639*/      OPC_SwitchType /*3 cases */, 57, MVT::v16i8,// ->47699
/* 47642*/        OPC_CheckChild1Type, MVT::v16i8,
/* 47644*/        OPC_RecordChild2, // #1 = $Qn
/* 47645*/        OPC_CheckChild2Type, MVT::v16i8,
/* 47647*/        OPC_Scope, 24, /*->47673*/ // 2 children in Scope
/* 47649*/          OPC_CheckChild3Integer, 0, 
/* 47651*/          OPC_RecordChild4, // #2 = $mask
/* 47652*/          OPC_CheckChild4Type, MVT::v16i1,
/* 47654*/          OPC_RecordChild5, // #3 = $inactive
/* 47655*/          OPC_CheckChild5Type, MVT::v16i8,
/* 47657*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47659*/          OPC_EmitInteger, MVT::i32, 1, 
/* 47662*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRHADDs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1563:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VRHADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 47673*/        /*Scope*/ 24, /*->47698*/
/* 47674*/          OPC_CheckChild3Integer, 1, 
/* 47676*/          OPC_RecordChild4, // #2 = $mask
/* 47677*/          OPC_CheckChild4Type, MVT::v16i1,
/* 47679*/          OPC_RecordChild5, // #3 = $inactive
/* 47680*/          OPC_CheckChild5Type, MVT::v16i8,
/* 47682*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47684*/          OPC_EmitInteger, MVT::i32, 1, 
/* 47687*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRHADDu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1563:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VRHADDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 47698*/        0, /*End of Scope*/
/* 47699*/      /*SwitchType*/ 57, MVT::v8i16,// ->47758
/* 47701*/        OPC_CheckChild1Type, MVT::v8i16,
/* 47703*/        OPC_RecordChild2, // #1 = $Qn
/* 47704*/        OPC_CheckChild2Type, MVT::v8i16,
/* 47706*/        OPC_Scope, 24, /*->47732*/ // 2 children in Scope
/* 47708*/          OPC_CheckChild3Integer, 0, 
/* 47710*/          OPC_RecordChild4, // #2 = $mask
/* 47711*/          OPC_CheckChild4Type, MVT::v8i1,
/* 47713*/          OPC_RecordChild5, // #3 = $inactive
/* 47714*/          OPC_CheckChild5Type, MVT::v8i16,
/* 47716*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47718*/          OPC_EmitInteger, MVT::i32, 1, 
/* 47721*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRHADDs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1563:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VRHADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 47732*/        /*Scope*/ 24, /*->47757*/
/* 47733*/          OPC_CheckChild3Integer, 1, 
/* 47735*/          OPC_RecordChild4, // #2 = $mask
/* 47736*/          OPC_CheckChild4Type, MVT::v8i1,
/* 47738*/          OPC_RecordChild5, // #3 = $inactive
/* 47739*/          OPC_CheckChild5Type, MVT::v8i16,
/* 47741*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47743*/          OPC_EmitInteger, MVT::i32, 1, 
/* 47746*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRHADDu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1563:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VRHADDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 47757*/        0, /*End of Scope*/
/* 47758*/      /*SwitchType*/ 57, MVT::v4i32,// ->47817
/* 47760*/        OPC_CheckChild1Type, MVT::v4i32,
/* 47762*/        OPC_RecordChild2, // #1 = $Qn
/* 47763*/        OPC_CheckChild2Type, MVT::v4i32,
/* 47765*/        OPC_Scope, 24, /*->47791*/ // 2 children in Scope
/* 47767*/          OPC_CheckChild3Integer, 0, 
/* 47769*/          OPC_RecordChild4, // #2 = $mask
/* 47770*/          OPC_CheckChild4Type, MVT::v4i1,
/* 47772*/          OPC_RecordChild5, // #3 = $inactive
/* 47773*/          OPC_CheckChild5Type, MVT::v4i32,
/* 47775*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47777*/          OPC_EmitInteger, MVT::i32, 1, 
/* 47780*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRHADDs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1563:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VRHADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 47791*/        /*Scope*/ 24, /*->47816*/
/* 47792*/          OPC_CheckChild3Integer, 1, 
/* 47794*/          OPC_RecordChild4, // #2 = $mask
/* 47795*/          OPC_CheckChild4Type, MVT::v4i1,
/* 47797*/          OPC_RecordChild5, // #3 = $inactive
/* 47798*/          OPC_CheckChild5Type, MVT::v4i32,
/* 47800*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47802*/          OPC_EmitInteger, MVT::i32, 1, 
/* 47805*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRHADDu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1563:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VRHADDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 47816*/        0, /*End of Scope*/
/* 47817*/      0, // EndSwitchType
/* 47818*/    /*Scope*/ 73|128,1/*201*/, /*->48021*/
/* 47820*/      OPC_CheckChild0Integer, 61|128,12/*1597*/, 
/* 47823*/      OPC_RecordChild1, // #0 = $Qm
/* 47824*/      OPC_SwitchType /*3 cases */, 63, MVT::v16i8,// ->47890
/* 47827*/        OPC_CheckChild1Type, MVT::v16i8,
/* 47829*/        OPC_RecordChild2, // #1 = $Qn
/* 47830*/        OPC_CheckChild2Type, MVT::v16i8,
/* 47832*/        OPC_Scope, 27, /*->47861*/ // 2 children in Scope
/* 47834*/          OPC_CheckChild3Integer, 0, 
/* 47836*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47838*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47841*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47844*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47850*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHADDs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1597:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VHADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 47861*/        /*Scope*/ 27, /*->47889*/
/* 47862*/          OPC_CheckChild3Integer, 1, 
/* 47864*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47866*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47869*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47872*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47878*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHADDu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1597:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VHADDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 47889*/        0, /*End of Scope*/
/* 47890*/      /*SwitchType*/ 63, MVT::v8i16,// ->47955
/* 47892*/        OPC_CheckChild1Type, MVT::v8i16,
/* 47894*/        OPC_RecordChild2, // #1 = $Qn
/* 47895*/        OPC_CheckChild2Type, MVT::v8i16,
/* 47897*/        OPC_Scope, 27, /*->47926*/ // 2 children in Scope
/* 47899*/          OPC_CheckChild3Integer, 0, 
/* 47901*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47903*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47906*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47909*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47915*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHADDs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1597:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VHADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 47926*/        /*Scope*/ 27, /*->47954*/
/* 47927*/          OPC_CheckChild3Integer, 1, 
/* 47929*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47931*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47934*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47937*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47943*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHADDu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1597:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VHADDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 47954*/        0, /*End of Scope*/
/* 47955*/      /*SwitchType*/ 63, MVT::v4i32,// ->48020
/* 47957*/        OPC_CheckChild1Type, MVT::v4i32,
/* 47959*/        OPC_RecordChild2, // #1 = $Qn
/* 47960*/        OPC_CheckChild2Type, MVT::v4i32,
/* 47962*/        OPC_Scope, 27, /*->47991*/ // 2 children in Scope
/* 47964*/          OPC_CheckChild3Integer, 0, 
/* 47966*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47968*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47971*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 47974*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 47980*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHADDs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1597:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VHADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 47991*/        /*Scope*/ 27, /*->48019*/
/* 47992*/          OPC_CheckChild3Integer, 1, 
/* 47994*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 47996*/          OPC_EmitInteger, MVT::i32, 0, 
/* 47999*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48002*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48008*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHADDu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1597:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VHADDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 48019*/        0, /*End of Scope*/
/* 48020*/      0, // EndSwitchType
/* 48021*/    /*Scope*/ 55|128,1/*183*/, /*->48206*/
/* 48023*/      OPC_CheckChild0Integer, 6|128,12/*1542*/, 
/* 48026*/      OPC_RecordChild1, // #0 = $Qm
/* 48027*/      OPC_SwitchType /*3 cases */, 57, MVT::v16i8,// ->48087
/* 48030*/        OPC_CheckChild1Type, MVT::v16i8,
/* 48032*/        OPC_RecordChild2, // #1 = $Qn
/* 48033*/        OPC_CheckChild2Type, MVT::v16i8,
/* 48035*/        OPC_Scope, 24, /*->48061*/ // 2 children in Scope
/* 48037*/          OPC_CheckChild3Integer, 0, 
/* 48039*/          OPC_RecordChild4, // #2 = $mask
/* 48040*/          OPC_CheckChild4Type, MVT::v16i1,
/* 48042*/          OPC_RecordChild5, // #3 = $inactive
/* 48043*/          OPC_CheckChild5Type, MVT::v16i8,
/* 48045*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48047*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48050*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHADDs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1542:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VHADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 48061*/        /*Scope*/ 24, /*->48086*/
/* 48062*/          OPC_CheckChild3Integer, 1, 
/* 48064*/          OPC_RecordChild4, // #2 = $mask
/* 48065*/          OPC_CheckChild4Type, MVT::v16i1,
/* 48067*/          OPC_RecordChild5, // #3 = $inactive
/* 48068*/          OPC_CheckChild5Type, MVT::v16i8,
/* 48070*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48072*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48075*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHADDu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1542:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VHADDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 48086*/        0, /*End of Scope*/
/* 48087*/      /*SwitchType*/ 57, MVT::v8i16,// ->48146
/* 48089*/        OPC_CheckChild1Type, MVT::v8i16,
/* 48091*/        OPC_RecordChild2, // #1 = $Qn
/* 48092*/        OPC_CheckChild2Type, MVT::v8i16,
/* 48094*/        OPC_Scope, 24, /*->48120*/ // 2 children in Scope
/* 48096*/          OPC_CheckChild3Integer, 0, 
/* 48098*/          OPC_RecordChild4, // #2 = $mask
/* 48099*/          OPC_CheckChild4Type, MVT::v8i1,
/* 48101*/          OPC_RecordChild5, // #3 = $inactive
/* 48102*/          OPC_CheckChild5Type, MVT::v8i16,
/* 48104*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48106*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48109*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHADDs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1542:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VHADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 48120*/        /*Scope*/ 24, /*->48145*/
/* 48121*/          OPC_CheckChild3Integer, 1, 
/* 48123*/          OPC_RecordChild4, // #2 = $mask
/* 48124*/          OPC_CheckChild4Type, MVT::v8i1,
/* 48126*/          OPC_RecordChild5, // #3 = $inactive
/* 48127*/          OPC_CheckChild5Type, MVT::v8i16,
/* 48129*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48131*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48134*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHADDu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1542:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VHADDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 48145*/        0, /*End of Scope*/
/* 48146*/      /*SwitchType*/ 57, MVT::v4i32,// ->48205
/* 48148*/        OPC_CheckChild1Type, MVT::v4i32,
/* 48150*/        OPC_RecordChild2, // #1 = $Qn
/* 48151*/        OPC_CheckChild2Type, MVT::v4i32,
/* 48153*/        OPC_Scope, 24, /*->48179*/ // 2 children in Scope
/* 48155*/          OPC_CheckChild3Integer, 0, 
/* 48157*/          OPC_RecordChild4, // #2 = $mask
/* 48158*/          OPC_CheckChild4Type, MVT::v4i1,
/* 48160*/          OPC_RecordChild5, // #3 = $inactive
/* 48161*/          OPC_CheckChild5Type, MVT::v4i32,
/* 48163*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48165*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48168*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHADDs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1542:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VHADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 48179*/        /*Scope*/ 24, /*->48204*/
/* 48180*/          OPC_CheckChild3Integer, 1, 
/* 48182*/          OPC_RecordChild4, // #2 = $mask
/* 48183*/          OPC_CheckChild4Type, MVT::v4i1,
/* 48185*/          OPC_RecordChild5, // #3 = $inactive
/* 48186*/          OPC_CheckChild5Type, MVT::v4i32,
/* 48188*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48190*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48193*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHADDu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1542:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VHADDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 48204*/        0, /*End of Scope*/
/* 48205*/      0, // EndSwitchType
/* 48206*/    /*Scope*/ 73|128,1/*201*/, /*->48409*/
/* 48208*/      OPC_CheckChild0Integer, 62|128,12/*1598*/, 
/* 48211*/      OPC_RecordChild1, // #0 = $Qm
/* 48212*/      OPC_SwitchType /*3 cases */, 63, MVT::v16i8,// ->48278
/* 48215*/        OPC_CheckChild1Type, MVT::v16i8,
/* 48217*/        OPC_RecordChild2, // #1 = $Qn
/* 48218*/        OPC_CheckChild2Type, MVT::v16i8,
/* 48220*/        OPC_Scope, 27, /*->48249*/ // 2 children in Scope
/* 48222*/          OPC_CheckChild3Integer, 0, 
/* 48224*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48226*/          OPC_EmitInteger, MVT::i32, 0, 
/* 48229*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48232*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48238*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHSUBs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1598:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VHSUBs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 48249*/        /*Scope*/ 27, /*->48277*/
/* 48250*/          OPC_CheckChild3Integer, 1, 
/* 48252*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48254*/          OPC_EmitInteger, MVT::i32, 0, 
/* 48257*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48260*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48266*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHSUBu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1598:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VHSUBu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 48277*/        0, /*End of Scope*/
/* 48278*/      /*SwitchType*/ 63, MVT::v8i16,// ->48343
/* 48280*/        OPC_CheckChild1Type, MVT::v8i16,
/* 48282*/        OPC_RecordChild2, // #1 = $Qn
/* 48283*/        OPC_CheckChild2Type, MVT::v8i16,
/* 48285*/        OPC_Scope, 27, /*->48314*/ // 2 children in Scope
/* 48287*/          OPC_CheckChild3Integer, 0, 
/* 48289*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48291*/          OPC_EmitInteger, MVT::i32, 0, 
/* 48294*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48297*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48303*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHSUBs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1598:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VHSUBs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 48314*/        /*Scope*/ 27, /*->48342*/
/* 48315*/          OPC_CheckChild3Integer, 1, 
/* 48317*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48319*/          OPC_EmitInteger, MVT::i32, 0, 
/* 48322*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48325*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48331*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHSUBu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1598:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VHSUBu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 48342*/        0, /*End of Scope*/
/* 48343*/      /*SwitchType*/ 63, MVT::v4i32,// ->48408
/* 48345*/        OPC_CheckChild1Type, MVT::v4i32,
/* 48347*/        OPC_RecordChild2, // #1 = $Qn
/* 48348*/        OPC_CheckChild2Type, MVT::v4i32,
/* 48350*/        OPC_Scope, 27, /*->48379*/ // 2 children in Scope
/* 48352*/          OPC_CheckChild3Integer, 0, 
/* 48354*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48356*/          OPC_EmitInteger, MVT::i32, 0, 
/* 48359*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48362*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48368*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHSUBs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1598:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VHSUBs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 48379*/        /*Scope*/ 27, /*->48407*/
/* 48380*/          OPC_CheckChild3Integer, 1, 
/* 48382*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48384*/          OPC_EmitInteger, MVT::i32, 0, 
/* 48387*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48390*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48396*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHSUBu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1598:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VHSUBu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 48407*/        0, /*End of Scope*/
/* 48408*/      0, // EndSwitchType
/* 48409*/    /*Scope*/ 55|128,1/*183*/, /*->48594*/
/* 48411*/      OPC_CheckChild0Integer, 7|128,12/*1543*/, 
/* 48414*/      OPC_RecordChild1, // #0 = $Qm
/* 48415*/      OPC_SwitchType /*3 cases */, 57, MVT::v16i8,// ->48475
/* 48418*/        OPC_CheckChild1Type, MVT::v16i8,
/* 48420*/        OPC_RecordChild2, // #1 = $Qn
/* 48421*/        OPC_CheckChild2Type, MVT::v16i8,
/* 48423*/        OPC_Scope, 24, /*->48449*/ // 2 children in Scope
/* 48425*/          OPC_CheckChild3Integer, 0, 
/* 48427*/          OPC_RecordChild4, // #2 = $mask
/* 48428*/          OPC_CheckChild4Type, MVT::v16i1,
/* 48430*/          OPC_RecordChild5, // #3 = $inactive
/* 48431*/          OPC_CheckChild5Type, MVT::v16i8,
/* 48433*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48435*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48438*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHSUBs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1543:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VHSUBs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 48449*/        /*Scope*/ 24, /*->48474*/
/* 48450*/          OPC_CheckChild3Integer, 1, 
/* 48452*/          OPC_RecordChild4, // #2 = $mask
/* 48453*/          OPC_CheckChild4Type, MVT::v16i1,
/* 48455*/          OPC_RecordChild5, // #3 = $inactive
/* 48456*/          OPC_CheckChild5Type, MVT::v16i8,
/* 48458*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48460*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48463*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHSUBu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1543:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VHSUBu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 48474*/        0, /*End of Scope*/
/* 48475*/      /*SwitchType*/ 57, MVT::v8i16,// ->48534
/* 48477*/        OPC_CheckChild1Type, MVT::v8i16,
/* 48479*/        OPC_RecordChild2, // #1 = $Qn
/* 48480*/        OPC_CheckChild2Type, MVT::v8i16,
/* 48482*/        OPC_Scope, 24, /*->48508*/ // 2 children in Scope
/* 48484*/          OPC_CheckChild3Integer, 0, 
/* 48486*/          OPC_RecordChild4, // #2 = $mask
/* 48487*/          OPC_CheckChild4Type, MVT::v8i1,
/* 48489*/          OPC_RecordChild5, // #3 = $inactive
/* 48490*/          OPC_CheckChild5Type, MVT::v8i16,
/* 48492*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48494*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48497*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHSUBs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1543:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VHSUBs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 48508*/        /*Scope*/ 24, /*->48533*/
/* 48509*/          OPC_CheckChild3Integer, 1, 
/* 48511*/          OPC_RecordChild4, // #2 = $mask
/* 48512*/          OPC_CheckChild4Type, MVT::v8i1,
/* 48514*/          OPC_RecordChild5, // #3 = $inactive
/* 48515*/          OPC_CheckChild5Type, MVT::v8i16,
/* 48517*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48519*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48522*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHSUBu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1543:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VHSUBu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 48533*/        0, /*End of Scope*/
/* 48534*/      /*SwitchType*/ 57, MVT::v4i32,// ->48593
/* 48536*/        OPC_CheckChild1Type, MVT::v4i32,
/* 48538*/        OPC_RecordChild2, // #1 = $Qn
/* 48539*/        OPC_CheckChild2Type, MVT::v4i32,
/* 48541*/        OPC_Scope, 24, /*->48567*/ // 2 children in Scope
/* 48543*/          OPC_CheckChild3Integer, 0, 
/* 48545*/          OPC_RecordChild4, // #2 = $mask
/* 48546*/          OPC_CheckChild4Type, MVT::v4i1,
/* 48548*/          OPC_RecordChild5, // #3 = $inactive
/* 48549*/          OPC_CheckChild5Type, MVT::v4i32,
/* 48551*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48553*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48556*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHSUBs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1543:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VHSUBs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 48567*/        /*Scope*/ 24, /*->48592*/
/* 48568*/          OPC_CheckChild3Integer, 1, 
/* 48570*/          OPC_RecordChild4, // #2 = $mask
/* 48571*/          OPC_CheckChild4Type, MVT::v4i1,
/* 48573*/          OPC_RecordChild5, // #3 = $inactive
/* 48574*/          OPC_CheckChild5Type, MVT::v4i32,
/* 48576*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48578*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48581*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VHSUBu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1543:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VHSUBu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 48592*/        0, /*End of Scope*/
/* 48593*/      0, // EndSwitchType
/* 48594*/    /*Scope*/ 8|128,1/*136*/, /*->48732*/
/* 48596*/      OPC_CheckChild0Integer, 77|128,12/*1613*/, 
/* 48599*/      OPC_RecordChild1, // #0 = $Qm
/* 48600*/      OPC_SwitchType /*2 cases */, 63, MVT::v8i16,// ->48666
/* 48603*/        OPC_CheckChild1Type, MVT::v16i8,
/* 48605*/        OPC_RecordChild2, // #1 = $Qn
/* 48606*/        OPC_CheckChild2Type, MVT::v16i8,
/* 48608*/        OPC_Scope, 27, /*->48637*/ // 2 children in Scope
/* 48610*/          OPC_CheckChild3Integer, 0, 
/* 48612*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48614*/          OPC_EmitInteger, MVT::i32, 0, 
/* 48617*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48620*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48626*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBp8), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1613:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VMULLBp8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 48637*/        /*Scope*/ 27, /*->48665*/
/* 48638*/          OPC_CheckChild3Integer, 1, 
/* 48640*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48642*/          OPC_EmitInteger, MVT::i32, 0, 
/* 48645*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48648*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48654*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTp8), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1613:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VMULLTp8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 48665*/        0, /*End of Scope*/
/* 48666*/      /*SwitchType*/ 63, MVT::v4i32,// ->48731
/* 48668*/        OPC_CheckChild1Type, MVT::v8i16,
/* 48670*/        OPC_RecordChild2, // #1 = $Qn
/* 48671*/        OPC_CheckChild2Type, MVT::v8i16,
/* 48673*/        OPC_Scope, 27, /*->48702*/ // 2 children in Scope
/* 48675*/          OPC_CheckChild3Integer, 0, 
/* 48677*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48679*/          OPC_EmitInteger, MVT::i32, 0, 
/* 48682*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48685*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48691*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBp16), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1613:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VMULLBp16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 48702*/        /*Scope*/ 27, /*->48730*/
/* 48703*/          OPC_CheckChild3Integer, 1, 
/* 48705*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48707*/          OPC_EmitInteger, MVT::i32, 0, 
/* 48710*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48713*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48719*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTp16), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1613:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VMULLTp16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 48730*/        0, /*End of Scope*/
/* 48731*/      0, // EndSwitchType
/* 48732*/    /*Scope*/ 124, /*->48857*/
/* 48733*/      OPC_CheckChild0Integer, 18|128,12/*1554*/, 
/* 48736*/      OPC_RecordChild1, // #0 = $Qm
/* 48737*/      OPC_SwitchType /*2 cases */, 57, MVT::v8i16,// ->48797
/* 48740*/        OPC_CheckChild1Type, MVT::v16i8,
/* 48742*/        OPC_RecordChild2, // #1 = $Qn
/* 48743*/        OPC_CheckChild2Type, MVT::v16i8,
/* 48745*/        OPC_Scope, 24, /*->48771*/ // 2 children in Scope
/* 48747*/          OPC_CheckChild3Integer, 0, 
/* 48749*/          OPC_RecordChild4, // #2 = $mask
/* 48750*/          OPC_CheckChild4Type, MVT::v16i1,
/* 48752*/          OPC_RecordChild5, // #3 = $inactive
/* 48753*/          OPC_CheckChild5Type, MVT::v8i16,
/* 48755*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48757*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48760*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBp8), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1554:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMULLBp8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 48771*/        /*Scope*/ 24, /*->48796*/
/* 48772*/          OPC_CheckChild3Integer, 1, 
/* 48774*/          OPC_RecordChild4, // #2 = $mask
/* 48775*/          OPC_CheckChild4Type, MVT::v16i1,
/* 48777*/          OPC_RecordChild5, // #3 = $inactive
/* 48778*/          OPC_CheckChild5Type, MVT::v8i16,
/* 48780*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48782*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48785*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTp8), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1554:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMULLTp8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 48796*/        0, /*End of Scope*/
/* 48797*/      /*SwitchType*/ 57, MVT::v4i32,// ->48856
/* 48799*/        OPC_CheckChild1Type, MVT::v8i16,
/* 48801*/        OPC_RecordChild2, // #1 = $Qn
/* 48802*/        OPC_CheckChild2Type, MVT::v8i16,
/* 48804*/        OPC_Scope, 24, /*->48830*/ // 2 children in Scope
/* 48806*/          OPC_CheckChild3Integer, 0, 
/* 48808*/          OPC_RecordChild4, // #2 = $mask
/* 48809*/          OPC_CheckChild4Type, MVT::v8i1,
/* 48811*/          OPC_RecordChild5, // #3 = $inactive
/* 48812*/          OPC_CheckChild5Type, MVT::v4i32,
/* 48814*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48816*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48819*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLBp16), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1554:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMULLBp16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 48830*/        /*Scope*/ 24, /*->48855*/
/* 48831*/          OPC_CheckChild3Integer, 1, 
/* 48833*/          OPC_RecordChild4, // #2 = $mask
/* 48834*/          OPC_CheckChild4Type, MVT::v8i1,
/* 48836*/          OPC_RecordChild5, // #3 = $inactive
/* 48837*/          OPC_CheckChild5Type, MVT::v4i32,
/* 48839*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48841*/          OPC_EmitInteger, MVT::i32, 1, 
/* 48844*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULLTp16), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1554:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMULLTp16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 48855*/        0, /*End of Scope*/
/* 48856*/      0, // EndSwitchType
/* 48857*/    /*Scope*/ 73|128,1/*201*/, /*->49060*/
/* 48859*/      OPC_CheckChild0Integer, 75|128,12/*1611*/, 
/* 48862*/      OPC_RecordChild1, // #0 = $Qm
/* 48863*/      OPC_SwitchType /*3 cases */, 63, MVT::v16i8,// ->48929
/* 48866*/        OPC_CheckChild1Type, MVT::v16i8,
/* 48868*/        OPC_RecordChild2, // #1 = $Qn
/* 48869*/        OPC_CheckChild2Type, MVT::v16i8,
/* 48871*/        OPC_Scope, 27, /*->48900*/ // 2 children in Scope
/* 48873*/          OPC_CheckChild3Integer, 0, 
/* 48875*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48877*/          OPC_EmitInteger, MVT::i32, 0, 
/* 48880*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48883*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48889*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULHs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1611:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VMULHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 48900*/        /*Scope*/ 27, /*->48928*/
/* 48901*/          OPC_CheckChild3Integer, 1, 
/* 48903*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48905*/          OPC_EmitInteger, MVT::i32, 0, 
/* 48908*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48911*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48917*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULHu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1611:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VMULHu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 48928*/        0, /*End of Scope*/
/* 48929*/      /*SwitchType*/ 63, MVT::v8i16,// ->48994
/* 48931*/        OPC_CheckChild1Type, MVT::v8i16,
/* 48933*/        OPC_RecordChild2, // #1 = $Qn
/* 48934*/        OPC_CheckChild2Type, MVT::v8i16,
/* 48936*/        OPC_Scope, 27, /*->48965*/ // 2 children in Scope
/* 48938*/          OPC_CheckChild3Integer, 0, 
/* 48940*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48942*/          OPC_EmitInteger, MVT::i32, 0, 
/* 48945*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48948*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48954*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULHs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1611:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VMULHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 48965*/        /*Scope*/ 27, /*->48993*/
/* 48966*/          OPC_CheckChild3Integer, 1, 
/* 48968*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 48970*/          OPC_EmitInteger, MVT::i32, 0, 
/* 48973*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 48976*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 48982*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULHu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1611:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VMULHu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 48993*/        0, /*End of Scope*/
/* 48994*/      /*SwitchType*/ 63, MVT::v4i32,// ->49059
/* 48996*/        OPC_CheckChild1Type, MVT::v4i32,
/* 48998*/        OPC_RecordChild2, // #1 = $Qn
/* 48999*/        OPC_CheckChild2Type, MVT::v4i32,
/* 49001*/        OPC_Scope, 27, /*->49030*/ // 2 children in Scope
/* 49003*/          OPC_CheckChild3Integer, 0, 
/* 49005*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49007*/          OPC_EmitInteger, MVT::i32, 0, 
/* 49010*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49013*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 49019*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULHs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1611:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VMULHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 49030*/        /*Scope*/ 27, /*->49058*/
/* 49031*/          OPC_CheckChild3Integer, 1, 
/* 49033*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49035*/          OPC_EmitInteger, MVT::i32, 0, 
/* 49038*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49041*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 49047*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULHu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1611:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VMULHu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 49058*/        0, /*End of Scope*/
/* 49059*/      0, // EndSwitchType
/* 49060*/    /*Scope*/ 55|128,1/*183*/, /*->49245*/
/* 49062*/      OPC_CheckChild0Integer, 16|128,12/*1552*/, 
/* 49065*/      OPC_RecordChild1, // #0 = $Qm
/* 49066*/      OPC_SwitchType /*3 cases */, 57, MVT::v16i8,// ->49126
/* 49069*/        OPC_CheckChild1Type, MVT::v16i8,
/* 49071*/        OPC_RecordChild2, // #1 = $Qn
/* 49072*/        OPC_CheckChild2Type, MVT::v16i8,
/* 49074*/        OPC_Scope, 24, /*->49100*/ // 2 children in Scope
/* 49076*/          OPC_CheckChild3Integer, 0, 
/* 49078*/          OPC_RecordChild4, // #2 = $mask
/* 49079*/          OPC_CheckChild4Type, MVT::v16i1,
/* 49081*/          OPC_RecordChild5, // #3 = $inactive
/* 49082*/          OPC_CheckChild5Type, MVT::v16i8,
/* 49084*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49086*/          OPC_EmitInteger, MVT::i32, 1, 
/* 49089*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULHs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1552:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMULHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 49100*/        /*Scope*/ 24, /*->49125*/
/* 49101*/          OPC_CheckChild3Integer, 1, 
/* 49103*/          OPC_RecordChild4, // #2 = $mask
/* 49104*/          OPC_CheckChild4Type, MVT::v16i1,
/* 49106*/          OPC_RecordChild5, // #3 = $inactive
/* 49107*/          OPC_CheckChild5Type, MVT::v16i8,
/* 49109*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49111*/          OPC_EmitInteger, MVT::i32, 1, 
/* 49114*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULHu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1552:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMULHu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 49125*/        0, /*End of Scope*/
/* 49126*/      /*SwitchType*/ 57, MVT::v8i16,// ->49185
/* 49128*/        OPC_CheckChild1Type, MVT::v8i16,
/* 49130*/        OPC_RecordChild2, // #1 = $Qn
/* 49131*/        OPC_CheckChild2Type, MVT::v8i16,
/* 49133*/        OPC_Scope, 24, /*->49159*/ // 2 children in Scope
/* 49135*/          OPC_CheckChild3Integer, 0, 
/* 49137*/          OPC_RecordChild4, // #2 = $mask
/* 49138*/          OPC_CheckChild4Type, MVT::v8i1,
/* 49140*/          OPC_RecordChild5, // #3 = $inactive
/* 49141*/          OPC_CheckChild5Type, MVT::v8i16,
/* 49143*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49145*/          OPC_EmitInteger, MVT::i32, 1, 
/* 49148*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULHs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1552:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMULHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 49159*/        /*Scope*/ 24, /*->49184*/
/* 49160*/          OPC_CheckChild3Integer, 1, 
/* 49162*/          OPC_RecordChild4, // #2 = $mask
/* 49163*/          OPC_CheckChild4Type, MVT::v8i1,
/* 49165*/          OPC_RecordChild5, // #3 = $inactive
/* 49166*/          OPC_CheckChild5Type, MVT::v8i16,
/* 49168*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49170*/          OPC_EmitInteger, MVT::i32, 1, 
/* 49173*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULHu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1552:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMULHu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 49184*/        0, /*End of Scope*/
/* 49185*/      /*SwitchType*/ 57, MVT::v4i32,// ->49244
/* 49187*/        OPC_CheckChild1Type, MVT::v4i32,
/* 49189*/        OPC_RecordChild2, // #1 = $Qn
/* 49190*/        OPC_CheckChild2Type, MVT::v4i32,
/* 49192*/        OPC_Scope, 24, /*->49218*/ // 2 children in Scope
/* 49194*/          OPC_CheckChild3Integer, 0, 
/* 49196*/          OPC_RecordChild4, // #2 = $mask
/* 49197*/          OPC_CheckChild4Type, MVT::v4i1,
/* 49199*/          OPC_RecordChild5, // #3 = $inactive
/* 49200*/          OPC_CheckChild5Type, MVT::v4i32,
/* 49202*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49204*/          OPC_EmitInteger, MVT::i32, 1, 
/* 49207*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULHs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1552:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMULHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 49218*/        /*Scope*/ 24, /*->49243*/
/* 49219*/          OPC_CheckChild3Integer, 1, 
/* 49221*/          OPC_RecordChild4, // #2 = $mask
/* 49222*/          OPC_CheckChild4Type, MVT::v4i1,
/* 49224*/          OPC_RecordChild5, // #3 = $inactive
/* 49225*/          OPC_CheckChild5Type, MVT::v4i32,
/* 49227*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49229*/          OPC_EmitInteger, MVT::i32, 1, 
/* 49232*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULHu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1552:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VMULHu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 49243*/        0, /*End of Scope*/
/* 49244*/      0, // EndSwitchType
/* 49245*/    /*Scope*/ 73|128,1/*201*/, /*->49448*/
/* 49247*/      OPC_CheckChild0Integer, 87|128,12/*1623*/, 
/* 49250*/      OPC_RecordChild1, // #0 = $Qm
/* 49251*/      OPC_SwitchType /*3 cases */, 63, MVT::v16i8,// ->49317
/* 49254*/        OPC_CheckChild1Type, MVT::v16i8,
/* 49256*/        OPC_RecordChild2, // #1 = $Qn
/* 49257*/        OPC_CheckChild2Type, MVT::v16i8,
/* 49259*/        OPC_Scope, 27, /*->49288*/ // 2 children in Scope
/* 49261*/          OPC_CheckChild3Integer, 0, 
/* 49263*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49265*/          OPC_EmitInteger, MVT::i32, 0, 
/* 49268*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49271*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 49277*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRMULHs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1623:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VRMULHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 49288*/        /*Scope*/ 27, /*->49316*/
/* 49289*/          OPC_CheckChild3Integer, 1, 
/* 49291*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49293*/          OPC_EmitInteger, MVT::i32, 0, 
/* 49296*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49299*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 49305*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRMULHu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1623:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VRMULHu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 49316*/        0, /*End of Scope*/
/* 49317*/      /*SwitchType*/ 63, MVT::v8i16,// ->49382
/* 49319*/        OPC_CheckChild1Type, MVT::v8i16,
/* 49321*/        OPC_RecordChild2, // #1 = $Qn
/* 49322*/        OPC_CheckChild2Type, MVT::v8i16,
/* 49324*/        OPC_Scope, 27, /*->49353*/ // 2 children in Scope
/* 49326*/          OPC_CheckChild3Integer, 0, 
/* 49328*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49330*/          OPC_EmitInteger, MVT::i32, 0, 
/* 49333*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49336*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 49342*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRMULHs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1623:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VRMULHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 49353*/        /*Scope*/ 27, /*->49381*/
/* 49354*/          OPC_CheckChild3Integer, 1, 
/* 49356*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49358*/          OPC_EmitInteger, MVT::i32, 0, 
/* 49361*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49364*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 49370*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRMULHu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1623:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VRMULHu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 49381*/        0, /*End of Scope*/
/* 49382*/      /*SwitchType*/ 63, MVT::v4i32,// ->49447
/* 49384*/        OPC_CheckChild1Type, MVT::v4i32,
/* 49386*/        OPC_RecordChild2, // #1 = $Qn
/* 49387*/        OPC_CheckChild2Type, MVT::v4i32,
/* 49389*/        OPC_Scope, 27, /*->49418*/ // 2 children in Scope
/* 49391*/          OPC_CheckChild3Integer, 0, 
/* 49393*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49395*/          OPC_EmitInteger, MVT::i32, 0, 
/* 49398*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49401*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 49407*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRMULHs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1623:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VRMULHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 49418*/        /*Scope*/ 27, /*->49446*/
/* 49419*/          OPC_CheckChild3Integer, 1, 
/* 49421*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49423*/          OPC_EmitInteger, MVT::i32, 0, 
/* 49426*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49429*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 49435*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRMULHu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1623:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VRMULHu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 49446*/        0, /*End of Scope*/
/* 49447*/      0, // EndSwitchType
/* 49448*/    /*Scope*/ 55|128,1/*183*/, /*->49633*/
/* 49450*/      OPC_CheckChild0Integer, 28|128,12/*1564*/, 
/* 49453*/      OPC_RecordChild1, // #0 = $Qm
/* 49454*/      OPC_SwitchType /*3 cases */, 57, MVT::v16i8,// ->49514
/* 49457*/        OPC_CheckChild1Type, MVT::v16i8,
/* 49459*/        OPC_RecordChild2, // #1 = $Qn
/* 49460*/        OPC_CheckChild2Type, MVT::v16i8,
/* 49462*/        OPC_Scope, 24, /*->49488*/ // 2 children in Scope
/* 49464*/          OPC_CheckChild3Integer, 0, 
/* 49466*/          OPC_RecordChild4, // #2 = $mask
/* 49467*/          OPC_CheckChild4Type, MVT::v16i1,
/* 49469*/          OPC_RecordChild5, // #3 = $inactive
/* 49470*/          OPC_CheckChild5Type, MVT::v16i8,
/* 49472*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49474*/          OPC_EmitInteger, MVT::i32, 1, 
/* 49477*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRMULHs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1564:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VRMULHs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 49488*/        /*Scope*/ 24, /*->49513*/
/* 49489*/          OPC_CheckChild3Integer, 1, 
/* 49491*/          OPC_RecordChild4, // #2 = $mask
/* 49492*/          OPC_CheckChild4Type, MVT::v16i1,
/* 49494*/          OPC_RecordChild5, // #3 = $inactive
/* 49495*/          OPC_CheckChild5Type, MVT::v16i8,
/* 49497*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49499*/          OPC_EmitInteger, MVT::i32, 1, 
/* 49502*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRMULHu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1564:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VRMULHu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 49513*/        0, /*End of Scope*/
/* 49514*/      /*SwitchType*/ 57, MVT::v8i16,// ->49573
/* 49516*/        OPC_CheckChild1Type, MVT::v8i16,
/* 49518*/        OPC_RecordChild2, // #1 = $Qn
/* 49519*/        OPC_CheckChild2Type, MVT::v8i16,
/* 49521*/        OPC_Scope, 24, /*->49547*/ // 2 children in Scope
/* 49523*/          OPC_CheckChild3Integer, 0, 
/* 49525*/          OPC_RecordChild4, // #2 = $mask
/* 49526*/          OPC_CheckChild4Type, MVT::v8i1,
/* 49528*/          OPC_RecordChild5, // #3 = $inactive
/* 49529*/          OPC_CheckChild5Type, MVT::v8i16,
/* 49531*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49533*/          OPC_EmitInteger, MVT::i32, 1, 
/* 49536*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRMULHs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1564:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VRMULHs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 49547*/        /*Scope*/ 24, /*->49572*/
/* 49548*/          OPC_CheckChild3Integer, 1, 
/* 49550*/          OPC_RecordChild4, // #2 = $mask
/* 49551*/          OPC_CheckChild4Type, MVT::v8i1,
/* 49553*/          OPC_RecordChild5, // #3 = $inactive
/* 49554*/          OPC_CheckChild5Type, MVT::v8i16,
/* 49556*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49558*/          OPC_EmitInteger, MVT::i32, 1, 
/* 49561*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRMULHu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1564:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VRMULHu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 49572*/        0, /*End of Scope*/
/* 49573*/      /*SwitchType*/ 57, MVT::v4i32,// ->49632
/* 49575*/        OPC_CheckChild1Type, MVT::v4i32,
/* 49577*/        OPC_RecordChild2, // #1 = $Qn
/* 49578*/        OPC_CheckChild2Type, MVT::v4i32,
/* 49580*/        OPC_Scope, 24, /*->49606*/ // 2 children in Scope
/* 49582*/          OPC_CheckChild3Integer, 0, 
/* 49584*/          OPC_RecordChild4, // #2 = $mask
/* 49585*/          OPC_CheckChild4Type, MVT::v4i1,
/* 49587*/          OPC_RecordChild5, // #3 = $inactive
/* 49588*/          OPC_CheckChild5Type, MVT::v4i32,
/* 49590*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49592*/          OPC_EmitInteger, MVT::i32, 1, 
/* 49595*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRMULHs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1564:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VRMULHs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 49606*/        /*Scope*/ 24, /*->49631*/
/* 49607*/          OPC_CheckChild3Integer, 1, 
/* 49609*/          OPC_RecordChild4, // #2 = $mask
/* 49610*/          OPC_CheckChild4Type, MVT::v4i1,
/* 49612*/          OPC_RecordChild5, // #3 = $inactive
/* 49613*/          OPC_CheckChild5Type, MVT::v4i32,
/* 49615*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 49617*/          OPC_EmitInteger, MVT::i32, 1, 
/* 49620*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRMULHu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1564:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 13
                    // Dst: (MVE_VRMULHu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 49631*/        0, /*End of Scope*/
/* 49632*/      0, // EndSwitchType
/* 49633*/    /*Scope*/ 111, /*->49745*/
/* 49634*/      OPC_CheckChild0Integer, 98|128,12/*1634*/, 
/* 49637*/      OPC_RecordChild1, // #0 = $QdSrc
/* 49638*/      OPC_Scope, 34, /*->49674*/ // 3 children in Scope
/* 49640*/        OPC_CheckChild1Type, MVT::v16i8,
/* 49642*/        OPC_RecordChild2, // #1 = $Qm
/* 49643*/        OPC_CheckChild2Type, MVT::v16i8,
/* 49645*/        OPC_RecordChild3, // #2 = $imm
/* 49646*/        OPC_MoveChild3,
/* 49647*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49650*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/* 49652*/        OPC_MoveParent,
/* 49653*/        OPC_CheckType, MVT::v16i8,
/* 49655*/        OPC_EmitConvertToTarget, 2,
/* 49657*/        OPC_EmitInteger, MVT::i32, 0, 
/* 49660*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49663*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSLIimm8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1634:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm) - Complexity = 12
                  // Dst: (MVE_VSLIimm8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
/* 49674*/      /*Scope*/ 34, /*->49709*/
/* 49675*/        OPC_CheckChild1Type, MVT::v8i16,
/* 49677*/        OPC_RecordChild2, // #1 = $Qm
/* 49678*/        OPC_CheckChild2Type, MVT::v8i16,
/* 49680*/        OPC_RecordChild3, // #2 = $imm
/* 49681*/        OPC_MoveChild3,
/* 49682*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49685*/        OPC_CheckPredicate, 33, // Predicate_imm0_15
/* 49687*/        OPC_MoveParent,
/* 49688*/        OPC_CheckType, MVT::v8i16,
/* 49690*/        OPC_EmitConvertToTarget, 2,
/* 49692*/        OPC_EmitInteger, MVT::i32, 0, 
/* 49695*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49698*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSLIimm16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1634:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm) - Complexity = 12
                  // Dst: (MVE_VSLIimm16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
/* 49709*/      /*Scope*/ 34, /*->49744*/
/* 49710*/        OPC_CheckChild1Type, MVT::v4i32,
/* 49712*/        OPC_RecordChild2, // #1 = $Qm
/* 49713*/        OPC_CheckChild2Type, MVT::v4i32,
/* 49715*/        OPC_RecordChild3, // #2 = $imm
/* 49716*/        OPC_MoveChild3,
/* 49717*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49720*/        OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 49722*/        OPC_MoveParent,
/* 49723*/        OPC_CheckType, MVT::v4i32,
/* 49725*/        OPC_EmitConvertToTarget, 2,
/* 49727*/        OPC_EmitInteger, MVT::i32, 0, 
/* 49730*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49733*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSLIimm32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1634:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 12
                  // Dst: (MVE_VSLIimm32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
/* 49744*/      0, /*End of Scope*/
/* 49745*/    /*Scope*/ 111, /*->49857*/
/* 49746*/      OPC_CheckChild0Integer, 99|128,12/*1635*/, 
/* 49749*/      OPC_RecordChild1, // #0 = $QdSrc
/* 49750*/      OPC_Scope, 34, /*->49786*/ // 3 children in Scope
/* 49752*/        OPC_CheckChild1Type, MVT::v16i8,
/* 49754*/        OPC_RecordChild2, // #1 = $Qm
/* 49755*/        OPC_CheckChild2Type, MVT::v16i8,
/* 49757*/        OPC_RecordChild3, // #2 = $imm
/* 49758*/        OPC_MoveChild3,
/* 49759*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49762*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/* 49764*/        OPC_MoveParent,
/* 49765*/        OPC_RecordChild4, // #3 = $pred
/* 49766*/        OPC_CheckChild4Type, MVT::v16i1,
/* 49768*/        OPC_CheckType, MVT::v16i8,
/* 49770*/        OPC_EmitConvertToTarget, 2,
/* 49772*/        OPC_EmitInteger, MVT::i32, 1, 
/* 49775*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSLIimm8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1635:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, VCCR:{ *:[v16i1] }:$pred) - Complexity = 12
                  // Dst: (MVE_VSLIimm8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred)
/* 49786*/      /*Scope*/ 34, /*->49821*/
/* 49787*/        OPC_CheckChild1Type, MVT::v8i16,
/* 49789*/        OPC_RecordChild2, // #1 = $Qm
/* 49790*/        OPC_CheckChild2Type, MVT::v8i16,
/* 49792*/        OPC_RecordChild3, // #2 = $imm
/* 49793*/        OPC_MoveChild3,
/* 49794*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49797*/        OPC_CheckPredicate, 33, // Predicate_imm0_15
/* 49799*/        OPC_MoveParent,
/* 49800*/        OPC_RecordChild4, // #3 = $pred
/* 49801*/        OPC_CheckChild4Type, MVT::v8i1,
/* 49803*/        OPC_CheckType, MVT::v8i16,
/* 49805*/        OPC_EmitConvertToTarget, 2,
/* 49807*/        OPC_EmitInteger, MVT::i32, 1, 
/* 49810*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSLIimm16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1635:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, VCCR:{ *:[v8i1] }:$pred) - Complexity = 12
                  // Dst: (MVE_VSLIimm16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 49821*/      /*Scope*/ 34, /*->49856*/
/* 49822*/        OPC_CheckChild1Type, MVT::v4i32,
/* 49824*/        OPC_RecordChild2, // #1 = $Qm
/* 49825*/        OPC_CheckChild2Type, MVT::v4i32,
/* 49827*/        OPC_RecordChild3, // #2 = $imm
/* 49828*/        OPC_MoveChild3,
/* 49829*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49832*/        OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 49834*/        OPC_MoveParent,
/* 49835*/        OPC_RecordChild4, // #3 = $pred
/* 49836*/        OPC_CheckChild4Type, MVT::v4i1,
/* 49838*/        OPC_CheckType, MVT::v4i32,
/* 49840*/        OPC_EmitConvertToTarget, 2,
/* 49842*/        OPC_EmitInteger, MVT::i32, 1, 
/* 49845*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSLIimm32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1635:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, VCCR:{ *:[v4i1] }:$pred) - Complexity = 12
                  // Dst: (MVE_VSLIimm32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 49856*/      0, /*End of Scope*/
/* 49857*/    /*Scope*/ 111, /*->49969*/
/* 49858*/      OPC_CheckChild0Integer, 100|128,12/*1636*/, 
/* 49861*/      OPC_RecordChild1, // #0 = $QdSrc
/* 49862*/      OPC_Scope, 34, /*->49898*/ // 3 children in Scope
/* 49864*/        OPC_CheckChild1Type, MVT::v16i8,
/* 49866*/        OPC_RecordChild2, // #1 = $Qm
/* 49867*/        OPC_CheckChild2Type, MVT::v16i8,
/* 49869*/        OPC_RecordChild3, // #2 = $imm
/* 49870*/        OPC_MoveChild3,
/* 49871*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49874*/        OPC_CheckPredicate, 34, // Predicate_shr_imm8
/* 49876*/        OPC_MoveParent,
/* 49877*/        OPC_CheckType, MVT::v16i8,
/* 49879*/        OPC_EmitConvertToTarget, 2,
/* 49881*/        OPC_EmitInteger, MVT::i32, 0, 
/* 49884*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49887*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSRIimm8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1636:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm) - Complexity = 12
                  // Dst: (MVE_VSRIimm8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm)
/* 49898*/      /*Scope*/ 34, /*->49933*/
/* 49899*/        OPC_CheckChild1Type, MVT::v8i16,
/* 49901*/        OPC_RecordChild2, // #1 = $Qm
/* 49902*/        OPC_CheckChild2Type, MVT::v8i16,
/* 49904*/        OPC_RecordChild3, // #2 = $imm
/* 49905*/        OPC_MoveChild3,
/* 49906*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49909*/        OPC_CheckPredicate, 35, // Predicate_shr_imm16
/* 49911*/        OPC_MoveParent,
/* 49912*/        OPC_CheckType, MVT::v8i16,
/* 49914*/        OPC_EmitConvertToTarget, 2,
/* 49916*/        OPC_EmitInteger, MVT::i32, 0, 
/* 49919*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49922*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSRIimm16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1636:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm) - Complexity = 12
                  // Dst: (MVE_VSRIimm16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm)
/* 49933*/      /*Scope*/ 34, /*->49968*/
/* 49934*/        OPC_CheckChild1Type, MVT::v4i32,
/* 49936*/        OPC_RecordChild2, // #1 = $Qm
/* 49937*/        OPC_CheckChild2Type, MVT::v4i32,
/* 49939*/        OPC_RecordChild3, // #2 = $imm
/* 49940*/        OPC_MoveChild3,
/* 49941*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49944*/        OPC_CheckPredicate, 1, // Predicate_shr_imm32
/* 49946*/        OPC_MoveParent,
/* 49947*/        OPC_CheckType, MVT::v4i32,
/* 49949*/        OPC_EmitConvertToTarget, 2,
/* 49951*/        OPC_EmitInteger, MVT::i32, 0, 
/* 49954*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 49957*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSRIimm32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1636:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm) - Complexity = 12
                  // Dst: (MVE_VSRIimm32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm)
/* 49968*/      0, /*End of Scope*/
/* 49969*/    /*Scope*/ 111, /*->50081*/
/* 49970*/      OPC_CheckChild0Integer, 101|128,12/*1637*/, 
/* 49973*/      OPC_RecordChild1, // #0 = $QdSrc
/* 49974*/      OPC_Scope, 34, /*->50010*/ // 3 children in Scope
/* 49976*/        OPC_CheckChild1Type, MVT::v16i8,
/* 49978*/        OPC_RecordChild2, // #1 = $Qm
/* 49979*/        OPC_CheckChild2Type, MVT::v16i8,
/* 49981*/        OPC_RecordChild3, // #2 = $imm
/* 49982*/        OPC_MoveChild3,
/* 49983*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 49986*/        OPC_CheckPredicate, 34, // Predicate_shr_imm8
/* 49988*/        OPC_MoveParent,
/* 49989*/        OPC_RecordChild4, // #3 = $pred
/* 49990*/        OPC_CheckChild4Type, MVT::v16i1,
/* 49992*/        OPC_CheckType, MVT::v16i8,
/* 49994*/        OPC_EmitConvertToTarget, 2,
/* 49996*/        OPC_EmitInteger, MVT::i32, 1, 
/* 49999*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSRIimm8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1637:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, VCCR:{ *:[v16i1] }:$pred) - Complexity = 12
                  // Dst: (MVE_VSRIimm8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$QdSrc, MQPR:{ *:[v16i8] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred)
/* 50010*/      /*Scope*/ 34, /*->50045*/
/* 50011*/        OPC_CheckChild1Type, MVT::v8i16,
/* 50013*/        OPC_RecordChild2, // #1 = $Qm
/* 50014*/        OPC_CheckChild2Type, MVT::v8i16,
/* 50016*/        OPC_RecordChild3, // #2 = $imm
/* 50017*/        OPC_MoveChild3,
/* 50018*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50021*/        OPC_CheckPredicate, 35, // Predicate_shr_imm16
/* 50023*/        OPC_MoveParent,
/* 50024*/        OPC_RecordChild4, // #3 = $pred
/* 50025*/        OPC_CheckChild4Type, MVT::v8i1,
/* 50027*/        OPC_CheckType, MVT::v8i16,
/* 50029*/        OPC_EmitConvertToTarget, 2,
/* 50031*/        OPC_EmitInteger, MVT::i32, 1, 
/* 50034*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSRIimm16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1637:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, VCCR:{ *:[v8i1] }:$pred) - Complexity = 12
                  // Dst: (MVE_VSRIimm16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$QdSrc, MQPR:{ *:[v8i16] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 50045*/      /*Scope*/ 34, /*->50080*/
/* 50046*/        OPC_CheckChild1Type, MVT::v4i32,
/* 50048*/        OPC_RecordChild2, // #1 = $Qm
/* 50049*/        OPC_CheckChild2Type, MVT::v4i32,
/* 50051*/        OPC_RecordChild3, // #2 = $imm
/* 50052*/        OPC_MoveChild3,
/* 50053*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50056*/        OPC_CheckPredicate, 1, // Predicate_shr_imm32
/* 50058*/        OPC_MoveParent,
/* 50059*/        OPC_RecordChild4, // #3 = $pred
/* 50060*/        OPC_CheckChild4Type, MVT::v4i1,
/* 50062*/        OPC_CheckType, MVT::v4i32,
/* 50064*/        OPC_EmitConvertToTarget, 2,
/* 50066*/        OPC_EmitInteger, MVT::i32, 1, 
/* 50069*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSRIimm32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 5, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1637:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm, VCCR:{ *:[v4i1] }:$pred) - Complexity = 12
                  // Dst: (MVE_VSRIimm32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$QdSrc, MQPR:{ *:[v4i32] }:$Qm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 50080*/      0, /*End of Scope*/
/* 50081*/    /*Scope*/ 120, /*->50202*/
/* 50082*/      OPC_CheckChild0Integer, 82|128,12/*1618*/, 
/* 50085*/      OPC_RecordChild1, // #0 = $src
/* 50086*/      OPC_Scope, 37, /*->50125*/ // 3 children in Scope
/* 50088*/        OPC_CheckChild1Type, MVT::v16i8,
/* 50090*/        OPC_RecordChild2, // #1 = $imm
/* 50091*/        OPC_MoveChild2,
/* 50092*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50095*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/* 50097*/        OPC_MoveParent,
/* 50098*/        OPC_CheckType, MVT::v16i8,
/* 50100*/        OPC_EmitConvertToTarget, 1,
/* 50102*/        OPC_EmitInteger, MVT::i32, 0, 
/* 50105*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50108*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 50114*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLU_imms8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1618:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm) - Complexity = 12
                  // Dst: (MVE_VQSHLU_imms8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
/* 50125*/      /*Scope*/ 37, /*->50163*/
/* 50126*/        OPC_CheckChild1Type, MVT::v8i16,
/* 50128*/        OPC_RecordChild2, // #1 = $imm
/* 50129*/        OPC_MoveChild2,
/* 50130*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50133*/        OPC_CheckPredicate, 33, // Predicate_imm0_15
/* 50135*/        OPC_MoveParent,
/* 50136*/        OPC_CheckType, MVT::v8i16,
/* 50138*/        OPC_EmitConvertToTarget, 1,
/* 50140*/        OPC_EmitInteger, MVT::i32, 0, 
/* 50143*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50146*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 50152*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLU_imms16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1618:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm) - Complexity = 12
                  // Dst: (MVE_VQSHLU_imms16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
/* 50163*/      /*Scope*/ 37, /*->50201*/
/* 50164*/        OPC_CheckChild1Type, MVT::v4i32,
/* 50166*/        OPC_RecordChild2, // #1 = $imm
/* 50167*/        OPC_MoveChild2,
/* 50168*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50171*/        OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 50173*/        OPC_MoveParent,
/* 50174*/        OPC_CheckType, MVT::v4i32,
/* 50176*/        OPC_EmitConvertToTarget, 1,
/* 50178*/        OPC_EmitInteger, MVT::i32, 0, 
/* 50181*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50184*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #5
/* 50190*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLU_imms32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1618:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 12
                  // Dst: (MVE_VQSHLU_imms32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
/* 50201*/      0, /*End of Scope*/
/* 50202*/    /*Scope*/ 111, /*->50314*/
/* 50203*/      OPC_CheckChild0Integer, 83|128,12/*1619*/, 
/* 50206*/      OPC_RecordChild1, // #0 = $src
/* 50207*/      OPC_Scope, 34, /*->50243*/ // 3 children in Scope
/* 50209*/        OPC_CheckChild1Type, MVT::v16i8,
/* 50211*/        OPC_RecordChild2, // #1 = $imm
/* 50212*/        OPC_MoveChild2,
/* 50213*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50216*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/* 50218*/        OPC_MoveParent,
/* 50219*/        OPC_RecordChild3, // #2 = $mask
/* 50220*/        OPC_CheckChild3Type, MVT::v16i1,
/* 50222*/        OPC_RecordChild4, // #3 = $inactive
/* 50223*/        OPC_CheckChild4Type, MVT::v16i8,
/* 50225*/        OPC_CheckType, MVT::v16i8,
/* 50227*/        OPC_EmitConvertToTarget, 1,
/* 50229*/        OPC_EmitInteger, MVT::i32, 1, 
/* 50232*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLU_imms8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1619:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 12
                  // Dst: (MVE_VQSHLU_imms8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 50243*/      /*Scope*/ 34, /*->50278*/
/* 50244*/        OPC_CheckChild1Type, MVT::v8i16,
/* 50246*/        OPC_RecordChild2, // #1 = $imm
/* 50247*/        OPC_MoveChild2,
/* 50248*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50251*/        OPC_CheckPredicate, 33, // Predicate_imm0_15
/* 50253*/        OPC_MoveParent,
/* 50254*/        OPC_RecordChild3, // #2 = $mask
/* 50255*/        OPC_CheckChild3Type, MVT::v8i1,
/* 50257*/        OPC_RecordChild4, // #3 = $inactive
/* 50258*/        OPC_CheckChild4Type, MVT::v8i16,
/* 50260*/        OPC_CheckType, MVT::v8i16,
/* 50262*/        OPC_EmitConvertToTarget, 1,
/* 50264*/        OPC_EmitInteger, MVT::i32, 1, 
/* 50267*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLU_imms16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1619:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 12
                  // Dst: (MVE_VQSHLU_imms16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 50278*/      /*Scope*/ 34, /*->50313*/
/* 50279*/        OPC_CheckChild1Type, MVT::v4i32,
/* 50281*/        OPC_RecordChild2, // #1 = $imm
/* 50282*/        OPC_MoveChild2,
/* 50283*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50286*/        OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 50288*/        OPC_MoveParent,
/* 50289*/        OPC_RecordChild3, // #2 = $mask
/* 50290*/        OPC_CheckChild3Type, MVT::v4i1,
/* 50292*/        OPC_RecordChild4, // #3 = $inactive
/* 50293*/        OPC_CheckChild4Type, MVT::v4i32,
/* 50295*/        OPC_CheckType, MVT::v4i32,
/* 50297*/        OPC_EmitConvertToTarget, 1,
/* 50299*/        OPC_EmitInteger, MVT::i32, 1, 
/* 50302*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSHLU_imms32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1619:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 12
                  // Dst: (MVE_VQSHLU_imms32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 50313*/      0, /*End of Scope*/
/* 50314*/    /*Scope*/ 117, /*->50432*/
/* 50315*/      OPC_CheckChild0Integer, 29|128,12/*1565*/, 
/* 50318*/      OPC_RecordChild1, // #0 = $src
/* 50319*/      OPC_Scope, 36, /*->50357*/ // 3 children in Scope
/* 50321*/        OPC_CheckChild1Type, MVT::v16i8,
/* 50323*/        OPC_RecordChild2, // #1 = $imm
/* 50324*/        OPC_MoveChild2,
/* 50325*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50328*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/* 50330*/        OPC_MoveParent,
/* 50331*/        OPC_RecordChild3, // #2 = $mask
/* 50332*/        OPC_CheckChild3Type, MVT::v16i1,
/* 50334*/        OPC_RecordChild4, // #3 = $inactive
/* 50335*/        OPC_CheckChild4Type, MVT::v16i8,
/* 50337*/        OPC_CheckType, MVT::v16i8,
/* 50339*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 50341*/        OPC_EmitConvertToTarget, 1,
/* 50343*/        OPC_EmitInteger, MVT::i32, 1, 
/* 50346*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_immi8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1565:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 12
                  // Dst: (MVE_VSHL_immi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 50357*/      /*Scope*/ 36, /*->50394*/
/* 50358*/        OPC_CheckChild1Type, MVT::v8i16,
/* 50360*/        OPC_RecordChild2, // #1 = $imm
/* 50361*/        OPC_MoveChild2,
/* 50362*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50365*/        OPC_CheckPredicate, 33, // Predicate_imm0_15
/* 50367*/        OPC_MoveParent,
/* 50368*/        OPC_RecordChild3, // #2 = $mask
/* 50369*/        OPC_CheckChild3Type, MVT::v8i1,
/* 50371*/        OPC_RecordChild4, // #3 = $inactive
/* 50372*/        OPC_CheckChild4Type, MVT::v8i16,
/* 50374*/        OPC_CheckType, MVT::v8i16,
/* 50376*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 50378*/        OPC_EmitConvertToTarget, 1,
/* 50380*/        OPC_EmitInteger, MVT::i32, 1, 
/* 50383*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_immi16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1565:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 12
                  // Dst: (MVE_VSHL_immi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 50394*/      /*Scope*/ 36, /*->50431*/
/* 50395*/        OPC_CheckChild1Type, MVT::v4i32,
/* 50397*/        OPC_RecordChild2, // #1 = $imm
/* 50398*/        OPC_MoveChild2,
/* 50399*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50402*/        OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 50404*/        OPC_MoveParent,
/* 50405*/        OPC_RecordChild3, // #2 = $mask
/* 50406*/        OPC_CheckChild3Type, MVT::v4i1,
/* 50408*/        OPC_RecordChild4, // #3 = $inactive
/* 50409*/        OPC_CheckChild4Type, MVT::v4i32,
/* 50411*/        OPC_CheckType, MVT::v4i32,
/* 50413*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 50415*/        OPC_EmitConvertToTarget, 1,
/* 50417*/        OPC_EmitInteger, MVT::i32, 1, 
/* 50420*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_immi32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 4, 5, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1565:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 12
                  // Dst: (MVE_VSHL_immi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 50431*/      0, /*End of Scope*/
/* 50432*/    /*Scope*/ 2|128,1/*130*/, /*->50564*/
/* 50434*/      OPC_CheckChild0Integer, 9|128,13/*1673*/, 
/* 50437*/      OPC_RecordChild1, // #0 = $Vm
/* 50438*/      OPC_Scope, 30, /*->50470*/ // 4 children in Scope
/* 50440*/        OPC_CheckChild1Type, MVT::v2f32,
/* 50442*/        OPC_RecordChild2, // #1 = $SIMM
/* 50443*/        OPC_MoveChild2,
/* 50444*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50447*/        OPC_MoveParent,
/* 50448*/        OPC_CheckType, MVT::v2i32,
/* 50450*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50452*/        OPC_EmitConvertToTarget, 1,
/* 50454*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50457*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50460*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTf2xsd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1673:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTf2xsd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 50470*/      /*Scope*/ 30, /*->50501*/
/* 50471*/        OPC_CheckChild1Type, MVT::v4f16,
/* 50473*/        OPC_RecordChild2, // #1 = $SIMM
/* 50474*/        OPC_MoveChild2,
/* 50475*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50478*/        OPC_MoveParent,
/* 50479*/        OPC_CheckType, MVT::v4i16,
/* 50481*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 50483*/        OPC_EmitConvertToTarget, 1,
/* 50485*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50488*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50491*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTh2xsd), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1673:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTh2xsd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 50501*/      /*Scope*/ 30, /*->50532*/
/* 50502*/        OPC_CheckChild1Type, MVT::v4f32,
/* 50504*/        OPC_RecordChild2, // #1 = $SIMM
/* 50505*/        OPC_MoveChild2,
/* 50506*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50509*/        OPC_MoveParent,
/* 50510*/        OPC_CheckType, MVT::v4i32,
/* 50512*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50514*/        OPC_EmitConvertToTarget, 1,
/* 50516*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50519*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50522*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTf2xsq), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1673:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTf2xsq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 50532*/      /*Scope*/ 30, /*->50563*/
/* 50533*/        OPC_CheckChild1Type, MVT::v8f16,
/* 50535*/        OPC_RecordChild2, // #1 = $SIMM
/* 50536*/        OPC_MoveChild2,
/* 50537*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50540*/        OPC_MoveParent,
/* 50541*/        OPC_CheckType, MVT::v8i16,
/* 50543*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 50545*/        OPC_EmitConvertToTarget, 1,
/* 50547*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50550*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50553*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTh2xsq), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1673:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTh2xsq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 50563*/      0, /*End of Scope*/
/* 50564*/    /*Scope*/ 2|128,1/*130*/, /*->50696*/
/* 50566*/      OPC_CheckChild0Integer, 10|128,13/*1674*/, 
/* 50569*/      OPC_RecordChild1, // #0 = $Vm
/* 50570*/      OPC_Scope, 30, /*->50602*/ // 4 children in Scope
/* 50572*/        OPC_CheckChild1Type, MVT::v2f32,
/* 50574*/        OPC_RecordChild2, // #1 = $SIMM
/* 50575*/        OPC_MoveChild2,
/* 50576*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50579*/        OPC_MoveParent,
/* 50580*/        OPC_CheckType, MVT::v2i32,
/* 50582*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50584*/        OPC_EmitConvertToTarget, 1,
/* 50586*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50589*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50592*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTf2xud), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1674:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTf2xud:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 50602*/      /*Scope*/ 30, /*->50633*/
/* 50603*/        OPC_CheckChild1Type, MVT::v4f16,
/* 50605*/        OPC_RecordChild2, // #1 = $SIMM
/* 50606*/        OPC_MoveChild2,
/* 50607*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50610*/        OPC_MoveParent,
/* 50611*/        OPC_CheckType, MVT::v4i16,
/* 50613*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 50615*/        OPC_EmitConvertToTarget, 1,
/* 50617*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50620*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50623*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTh2xud), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1674:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTh2xud:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 50633*/      /*Scope*/ 30, /*->50664*/
/* 50634*/        OPC_CheckChild1Type, MVT::v4f32,
/* 50636*/        OPC_RecordChild2, // #1 = $SIMM
/* 50637*/        OPC_MoveChild2,
/* 50638*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50641*/        OPC_MoveParent,
/* 50642*/        OPC_CheckType, MVT::v4i32,
/* 50644*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50646*/        OPC_EmitConvertToTarget, 1,
/* 50648*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50651*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50654*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTf2xuq), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1674:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTf2xuq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 50664*/      /*Scope*/ 30, /*->50695*/
/* 50665*/        OPC_CheckChild1Type, MVT::v8f16,
/* 50667*/        OPC_RecordChild2, // #1 = $SIMM
/* 50668*/        OPC_MoveChild2,
/* 50669*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 50672*/        OPC_MoveParent,
/* 50673*/        OPC_CheckType, MVT::v8i16,
/* 50675*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 50677*/        OPC_EmitConvertToTarget, 1,
/* 50679*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50682*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50685*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTh2xuq), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1674:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTh2xuq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 50695*/      0, /*End of Scope*/
/* 50696*/    /*Scope*/ 28|128,1/*156*/, /*->50854*/
/* 50698*/      OPC_CheckChild0Integer, 21|128,13/*1685*/, 
/* 50701*/      OPC_RecordChild1, // #0 = $Vn
/* 50702*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->50728
/* 50705*/        OPC_CheckChild1Type, MVT::v4i16,
/* 50707*/        OPC_RecordChild2, // #1 = $Vm
/* 50708*/        OPC_CheckChild2Type, MVT::v4i16,
/* 50710*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50712*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50715*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50718*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1685:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VHADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 50728*/      /*SwitchType*/ 23, MVT::v2i32,// ->50753
/* 50730*/        OPC_CheckChild1Type, MVT::v2i32,
/* 50732*/        OPC_RecordChild2, // #1 = $Vm
/* 50733*/        OPC_CheckChild2Type, MVT::v2i32,
/* 50735*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50737*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50740*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50743*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1685:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VHADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 50753*/      /*SwitchType*/ 23, MVT::v8i16,// ->50778
/* 50755*/        OPC_CheckChild1Type, MVT::v8i16,
/* 50757*/        OPC_RecordChild2, // #1 = $Vm
/* 50758*/        OPC_CheckChild2Type, MVT::v8i16,
/* 50760*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50762*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50765*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50768*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1685:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VHADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 50778*/      /*SwitchType*/ 23, MVT::v4i32,// ->50803
/* 50780*/        OPC_CheckChild1Type, MVT::v4i32,
/* 50782*/        OPC_RecordChild2, // #1 = $Vm
/* 50783*/        OPC_CheckChild2Type, MVT::v4i32,
/* 50785*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50787*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50790*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50793*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1685:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VHADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 50803*/      /*SwitchType*/ 23, MVT::v8i8,// ->50828
/* 50805*/        OPC_CheckChild1Type, MVT::v8i8,
/* 50807*/        OPC_RecordChild2, // #1 = $Vm
/* 50808*/        OPC_CheckChild2Type, MVT::v8i8,
/* 50810*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50812*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50815*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50818*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1685:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VHADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 50828*/      /*SwitchType*/ 23, MVT::v16i8,// ->50853
/* 50830*/        OPC_CheckChild1Type, MVT::v16i8,
/* 50832*/        OPC_RecordChild2, // #1 = $Vm
/* 50833*/        OPC_CheckChild2Type, MVT::v16i8,
/* 50835*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50837*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50840*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50843*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1685:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VHADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 50853*/      0, // EndSwitchType
/* 50854*/    /*Scope*/ 28|128,1/*156*/, /*->51012*/
/* 50856*/      OPC_CheckChild0Integer, 22|128,13/*1686*/, 
/* 50859*/      OPC_RecordChild1, // #0 = $Vn
/* 50860*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->50886
/* 50863*/        OPC_CheckChild1Type, MVT::v4i16,
/* 50865*/        OPC_RecordChild2, // #1 = $Vm
/* 50866*/        OPC_CheckChild2Type, MVT::v4i16,
/* 50868*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50870*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50873*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50876*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1686:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VHADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 50886*/      /*SwitchType*/ 23, MVT::v2i32,// ->50911
/* 50888*/        OPC_CheckChild1Type, MVT::v2i32,
/* 50890*/        OPC_RecordChild2, // #1 = $Vm
/* 50891*/        OPC_CheckChild2Type, MVT::v2i32,
/* 50893*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50895*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50898*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50901*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1686:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VHADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 50911*/      /*SwitchType*/ 23, MVT::v8i16,// ->50936
/* 50913*/        OPC_CheckChild1Type, MVT::v8i16,
/* 50915*/        OPC_RecordChild2, // #1 = $Vm
/* 50916*/        OPC_CheckChild2Type, MVT::v8i16,
/* 50918*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50920*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50923*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50926*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1686:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VHADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 50936*/      /*SwitchType*/ 23, MVT::v4i32,// ->50961
/* 50938*/        OPC_CheckChild1Type, MVT::v4i32,
/* 50940*/        OPC_RecordChild2, // #1 = $Vm
/* 50941*/        OPC_CheckChild2Type, MVT::v4i32,
/* 50943*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50945*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50948*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50951*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1686:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VHADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 50961*/      /*SwitchType*/ 23, MVT::v8i8,// ->50986
/* 50963*/        OPC_CheckChild1Type, MVT::v8i8,
/* 50965*/        OPC_RecordChild2, // #1 = $Vm
/* 50966*/        OPC_CheckChild2Type, MVT::v8i8,
/* 50968*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50970*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50973*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 50976*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1686:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VHADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 50986*/      /*SwitchType*/ 23, MVT::v16i8,// ->51011
/* 50988*/        OPC_CheckChild1Type, MVT::v16i8,
/* 50990*/        OPC_RecordChild2, // #1 = $Vm
/* 50991*/        OPC_CheckChild2Type, MVT::v16i8,
/* 50993*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 50995*/        OPC_EmitInteger, MVT::i32, 14, 
/* 50998*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51001*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHADDuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1686:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VHADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 51011*/      0, // EndSwitchType
/* 51012*/    /*Scope*/ 28|128,1/*156*/, /*->51170*/
/* 51014*/      OPC_CheckChild0Integer, 79|128,13/*1743*/, 
/* 51017*/      OPC_RecordChild1, // #0 = $Vn
/* 51018*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->51044
/* 51021*/        OPC_CheckChild1Type, MVT::v4i16,
/* 51023*/        OPC_RecordChild2, // #1 = $Vm
/* 51024*/        OPC_CheckChild2Type, MVT::v4i16,
/* 51026*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51028*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51031*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51034*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1743:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 51044*/      /*SwitchType*/ 23, MVT::v2i32,// ->51069
/* 51046*/        OPC_CheckChild1Type, MVT::v2i32,
/* 51048*/        OPC_RecordChild2, // #1 = $Vm
/* 51049*/        OPC_CheckChild2Type, MVT::v2i32,
/* 51051*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51053*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51056*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51059*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1743:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 51069*/      /*SwitchType*/ 23, MVT::v8i16,// ->51094
/* 51071*/        OPC_CheckChild1Type, MVT::v8i16,
/* 51073*/        OPC_RecordChild2, // #1 = $Vm
/* 51074*/        OPC_CheckChild2Type, MVT::v8i16,
/* 51076*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51078*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51081*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51084*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1743:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 51094*/      /*SwitchType*/ 23, MVT::v4i32,// ->51119
/* 51096*/        OPC_CheckChild1Type, MVT::v4i32,
/* 51098*/        OPC_RecordChild2, // #1 = $Vm
/* 51099*/        OPC_CheckChild2Type, MVT::v4i32,
/* 51101*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51103*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51106*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51109*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1743:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 51119*/      /*SwitchType*/ 23, MVT::v8i8,// ->51144
/* 51121*/        OPC_CheckChild1Type, MVT::v8i8,
/* 51123*/        OPC_RecordChild2, // #1 = $Vm
/* 51124*/        OPC_CheckChild2Type, MVT::v8i8,
/* 51126*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51128*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51131*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51134*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1743:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 51144*/      /*SwitchType*/ 23, MVT::v16i8,// ->51169
/* 51146*/        OPC_CheckChild1Type, MVT::v16i8,
/* 51148*/        OPC_RecordChild2, // #1 = $Vm
/* 51149*/        OPC_CheckChild2Type, MVT::v16i8,
/* 51151*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51153*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51156*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51159*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1743:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 51169*/      0, // EndSwitchType
/* 51170*/    /*Scope*/ 28|128,1/*156*/, /*->51328*/
/* 51172*/      OPC_CheckChild0Integer, 80|128,13/*1744*/, 
/* 51175*/      OPC_RecordChild1, // #0 = $Vn
/* 51176*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->51202
/* 51179*/        OPC_CheckChild1Type, MVT::v4i16,
/* 51181*/        OPC_RecordChild2, // #1 = $Vm
/* 51182*/        OPC_CheckChild2Type, MVT::v4i16,
/* 51184*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51186*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51189*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51192*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1744:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 51202*/      /*SwitchType*/ 23, MVT::v2i32,// ->51227
/* 51204*/        OPC_CheckChild1Type, MVT::v2i32,
/* 51206*/        OPC_RecordChild2, // #1 = $Vm
/* 51207*/        OPC_CheckChild2Type, MVT::v2i32,
/* 51209*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51211*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51214*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51217*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1744:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 51227*/      /*SwitchType*/ 23, MVT::v8i16,// ->51252
/* 51229*/        OPC_CheckChild1Type, MVT::v8i16,
/* 51231*/        OPC_RecordChild2, // #1 = $Vm
/* 51232*/        OPC_CheckChild2Type, MVT::v8i16,
/* 51234*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51236*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51239*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51242*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1744:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 51252*/      /*SwitchType*/ 23, MVT::v4i32,// ->51277
/* 51254*/        OPC_CheckChild1Type, MVT::v4i32,
/* 51256*/        OPC_RecordChild2, // #1 = $Vm
/* 51257*/        OPC_CheckChild2Type, MVT::v4i32,
/* 51259*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51261*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51264*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51267*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1744:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 51277*/      /*SwitchType*/ 23, MVT::v8i8,// ->51302
/* 51279*/        OPC_CheckChild1Type, MVT::v8i8,
/* 51281*/        OPC_RecordChild2, // #1 = $Vm
/* 51282*/        OPC_CheckChild2Type, MVT::v8i8,
/* 51284*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51286*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51289*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51292*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1744:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 51302*/      /*SwitchType*/ 23, MVT::v16i8,// ->51327
/* 51304*/        OPC_CheckChild1Type, MVT::v16i8,
/* 51306*/        OPC_RecordChild2, // #1 = $Vm
/* 51307*/        OPC_CheckChild2Type, MVT::v16i8,
/* 51309*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51311*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51314*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51317*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRHADDuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1744:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VRHADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 51327*/      0, // EndSwitchType
/* 51328*/    /*Scope*/ 81, /*->51410*/
/* 51329*/      OPC_CheckChild0Integer, 76|128,13/*1740*/, 
/* 51332*/      OPC_RecordChild1, // #0 = $Vn
/* 51333*/      OPC_SwitchType /*3 cases */, 23, MVT::v8i8,// ->51359
/* 51336*/        OPC_CheckChild1Type, MVT::v8i16,
/* 51338*/        OPC_RecordChild2, // #1 = $Vm
/* 51339*/        OPC_CheckChild2Type, MVT::v8i16,
/* 51341*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51343*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51346*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51349*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRADDHNv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1740:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VRADDHNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 51359*/      /*SwitchType*/ 23, MVT::v4i16,// ->51384
/* 51361*/        OPC_CheckChild1Type, MVT::v4i32,
/* 51363*/        OPC_RecordChild2, // #1 = $Vm
/* 51364*/        OPC_CheckChild2Type, MVT::v4i32,
/* 51366*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51368*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51371*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51374*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRADDHNv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1740:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VRADDHNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 51384*/      /*SwitchType*/ 23, MVT::v2i32,// ->51409
/* 51386*/        OPC_CheckChild1Type, MVT::v2i64,
/* 51388*/        OPC_RecordChild2, // #1 = $Vm
/* 51389*/        OPC_CheckChild2Type, MVT::v2i64,
/* 51391*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51393*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51396*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51399*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRADDHNv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1740:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                  // Dst: (VRADDHNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 51409*/      0, // EndSwitchType
/* 51410*/    /*Scope*/ 56, /*->51467*/
/* 51411*/      OPC_CheckChild0Integer, 47|128,13/*1711*/, 
/* 51414*/      OPC_RecordChild1, // #0 = $Vn
/* 51415*/      OPC_SwitchType /*2 cases */, 23, MVT::v8i8,// ->51441
/* 51418*/        OPC_CheckChild1Type, MVT::v8i8,
/* 51420*/        OPC_RecordChild2, // #1 = $Vm
/* 51421*/        OPC_CheckChild2Type, MVT::v8i8,
/* 51423*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51425*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51428*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51431*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULpd), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1711:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VMULpd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 51441*/      /*SwitchType*/ 23, MVT::v16i8,// ->51466
/* 51443*/        OPC_CheckChild1Type, MVT::v16i8,
/* 51445*/        OPC_RecordChild2, // #1 = $Vm
/* 51446*/        OPC_CheckChild2Type, MVT::v16i8,
/* 51448*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51450*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51453*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51456*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULpq), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1711:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VMULpq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 51466*/      0, // EndSwitchType
/* 51467*/    /*Scope*/ 48, /*->51516*/
/* 51468*/      OPC_CheckChild0Integer, 44|128,13/*1708*/, 
/* 51471*/      OPC_RecordChild1, // #0 = $Vn
/* 51472*/      OPC_SwitchType /*2 cases */, 23, MVT::v8i16,// ->51498
/* 51475*/        OPC_CheckChild1Type, MVT::v8i8,
/* 51477*/        OPC_RecordChild2, // #1 = $Vm
/* 51478*/        OPC_CheckChild2Type, MVT::v8i8,
/* 51480*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51482*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51485*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51488*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLp8), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1708:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VMULLp8:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 51498*/      /*SwitchType*/ 15, MVT::v2i64,// ->51515
/* 51500*/        OPC_CheckChild1Type, MVT::v1i64,
/* 51502*/        OPC_RecordChild2, // #1 = $Vm
/* 51503*/        OPC_CheckChild2Type, MVT::v1i64,
/* 51505*/        OPC_CheckPatternPredicate, 32, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 51507*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLp64), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1708:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) - Complexity = 8
                  // Dst: (VMULLp64:{ *:[v2i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/* 51515*/      0, // EndSwitchType
/* 51516*/    /*Scope*/ 28|128,1/*156*/, /*->51674*/
/* 51518*/      OPC_CheckChild0Integer, 23|128,13/*1687*/, 
/* 51521*/      OPC_RecordChild1, // #0 = $Vn
/* 51522*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->51548
/* 51525*/        OPC_CheckChild1Type, MVT::v4i16,
/* 51527*/        OPC_RecordChild2, // #1 = $Vm
/* 51528*/        OPC_CheckChild2Type, MVT::v4i16,
/* 51530*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51532*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51535*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51538*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1687:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 51548*/      /*SwitchType*/ 23, MVT::v2i32,// ->51573
/* 51550*/        OPC_CheckChild1Type, MVT::v2i32,
/* 51552*/        OPC_RecordChild2, // #1 = $Vm
/* 51553*/        OPC_CheckChild2Type, MVT::v2i32,
/* 51555*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51557*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51560*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51563*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1687:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 51573*/      /*SwitchType*/ 23, MVT::v8i16,// ->51598
/* 51575*/        OPC_CheckChild1Type, MVT::v8i16,
/* 51577*/        OPC_RecordChild2, // #1 = $Vm
/* 51578*/        OPC_CheckChild2Type, MVT::v8i16,
/* 51580*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51582*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51585*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51588*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1687:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 51598*/      /*SwitchType*/ 23, MVT::v4i32,// ->51623
/* 51600*/        OPC_CheckChild1Type, MVT::v4i32,
/* 51602*/        OPC_RecordChild2, // #1 = $Vm
/* 51603*/        OPC_CheckChild2Type, MVT::v4i32,
/* 51605*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51607*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51610*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51613*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1687:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 51623*/      /*SwitchType*/ 23, MVT::v8i8,// ->51648
/* 51625*/        OPC_CheckChild1Type, MVT::v8i8,
/* 51627*/        OPC_RecordChild2, // #1 = $Vm
/* 51628*/        OPC_CheckChild2Type, MVT::v8i8,
/* 51630*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51632*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51635*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51638*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1687:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 51648*/      /*SwitchType*/ 23, MVT::v16i8,// ->51673
/* 51650*/        OPC_CheckChild1Type, MVT::v16i8,
/* 51652*/        OPC_RecordChild2, // #1 = $Vm
/* 51653*/        OPC_CheckChild2Type, MVT::v16i8,
/* 51655*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51657*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51660*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51663*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1687:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 51673*/      0, // EndSwitchType
/* 51674*/    /*Scope*/ 28|128,1/*156*/, /*->51832*/
/* 51676*/      OPC_CheckChild0Integer, 24|128,13/*1688*/, 
/* 51679*/      OPC_RecordChild1, // #0 = $Vn
/* 51680*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->51706
/* 51683*/        OPC_CheckChild1Type, MVT::v4i16,
/* 51685*/        OPC_RecordChild2, // #1 = $Vm
/* 51686*/        OPC_CheckChild2Type, MVT::v4i16,
/* 51688*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51690*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51693*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51696*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1688:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 51706*/      /*SwitchType*/ 23, MVT::v2i32,// ->51731
/* 51708*/        OPC_CheckChild1Type, MVT::v2i32,
/* 51710*/        OPC_RecordChild2, // #1 = $Vm
/* 51711*/        OPC_CheckChild2Type, MVT::v2i32,
/* 51713*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51715*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51718*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51721*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1688:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 51731*/      /*SwitchType*/ 23, MVT::v8i16,// ->51756
/* 51733*/        OPC_CheckChild1Type, MVT::v8i16,
/* 51735*/        OPC_RecordChild2, // #1 = $Vm
/* 51736*/        OPC_CheckChild2Type, MVT::v8i16,
/* 51738*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51740*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51743*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51746*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1688:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 51756*/      /*SwitchType*/ 23, MVT::v4i32,// ->51781
/* 51758*/        OPC_CheckChild1Type, MVT::v4i32,
/* 51760*/        OPC_RecordChild2, // #1 = $Vm
/* 51761*/        OPC_CheckChild2Type, MVT::v4i32,
/* 51763*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51765*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51768*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51771*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1688:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 51781*/      /*SwitchType*/ 23, MVT::v8i8,// ->51806
/* 51783*/        OPC_CheckChild1Type, MVT::v8i8,
/* 51785*/        OPC_RecordChild2, // #1 = $Vm
/* 51786*/        OPC_CheckChild2Type, MVT::v8i8,
/* 51788*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51790*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51793*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51796*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1688:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 51806*/      /*SwitchType*/ 23, MVT::v16i8,// ->51831
/* 51808*/        OPC_CheckChild1Type, MVT::v16i8,
/* 51810*/        OPC_RecordChild2, // #1 = $Vm
/* 51811*/        OPC_CheckChild2Type, MVT::v16i8,
/* 51813*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51815*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51818*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51821*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VHSUBuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1688:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VHSUBuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 51831*/      0, // EndSwitchType
/* 51832*/    /*Scope*/ 81, /*->51914*/
/* 51833*/      OPC_CheckChild0Integer, 92|128,13/*1756*/, 
/* 51836*/      OPC_RecordChild1, // #0 = $Vn
/* 51837*/      OPC_SwitchType /*3 cases */, 23, MVT::v8i8,// ->51863
/* 51840*/        OPC_CheckChild1Type, MVT::v8i16,
/* 51842*/        OPC_RecordChild2, // #1 = $Vm
/* 51843*/        OPC_CheckChild2Type, MVT::v8i16,
/* 51845*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51847*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51850*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51853*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSUBHNv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1756:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VRSUBHNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 51863*/      /*SwitchType*/ 23, MVT::v4i16,// ->51888
/* 51865*/        OPC_CheckChild1Type, MVT::v4i32,
/* 51867*/        OPC_RecordChild2, // #1 = $Vm
/* 51868*/        OPC_CheckChild2Type, MVT::v4i32,
/* 51870*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51872*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51875*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51878*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSUBHNv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1756:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VRSUBHNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 51888*/      /*SwitchType*/ 23, MVT::v2i32,// ->51913
/* 51890*/        OPC_CheckChild1Type, MVT::v2i64,
/* 51892*/        OPC_RecordChild2, // #1 = $Vm
/* 51893*/        OPC_CheckChild2Type, MVT::v2i64,
/* 51895*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51897*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51900*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51903*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSUBHNv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1756:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                  // Dst: (VRSUBHNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 51913*/      0, // EndSwitchType
/* 51914*/    /*Scope*/ 106, /*->52021*/
/* 51915*/      OPC_CheckChild0Integer, 1|128,13/*1665*/, 
/* 51918*/      OPC_RecordChild1, // #0 = $Vn
/* 51919*/      OPC_SwitchType /*4 cases */, 23, MVT::v2i32,// ->51945
/* 51922*/        OPC_CheckChild1Type, MVT::v2f32,
/* 51924*/        OPC_RecordChild2, // #1 = $Vm
/* 51925*/        OPC_CheckChild2Type, MVT::v2f32,
/* 51927*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51929*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51932*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51935*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGEfd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1665:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VACGEfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 51945*/      /*SwitchType*/ 23, MVT::v4i32,// ->51970
/* 51947*/        OPC_CheckChild1Type, MVT::v4f32,
/* 51949*/        OPC_RecordChild2, // #1 = $Vm
/* 51950*/        OPC_CheckChild2Type, MVT::v4f32,
/* 51952*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 51954*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51957*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51960*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGEfq), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1665:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VACGEfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 51970*/      /*SwitchType*/ 23, MVT::v4i16,// ->51995
/* 51972*/        OPC_CheckChild1Type, MVT::v4f16,
/* 51974*/        OPC_RecordChild2, // #1 = $Vm
/* 51975*/        OPC_CheckChild2Type, MVT::v4f16,
/* 51977*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 51979*/        OPC_EmitInteger, MVT::i32, 14, 
/* 51982*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 51985*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGEhd), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1665:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VACGEhd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 51995*/      /*SwitchType*/ 23, MVT::v8i16,// ->52020
/* 51997*/        OPC_CheckChild1Type, MVT::v8f16,
/* 51999*/        OPC_RecordChild2, // #1 = $Vm
/* 52000*/        OPC_CheckChild2Type, MVT::v8f16,
/* 52002*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 52004*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52007*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52010*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGEhq), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1665:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VACGEhq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 52020*/      0, // EndSwitchType
/* 52021*/    /*Scope*/ 106, /*->52128*/
/* 52022*/      OPC_CheckChild0Integer, 2|128,13/*1666*/, 
/* 52025*/      OPC_RecordChild1, // #0 = $Vn
/* 52026*/      OPC_SwitchType /*4 cases */, 23, MVT::v2i32,// ->52052
/* 52029*/        OPC_CheckChild1Type, MVT::v2f32,
/* 52031*/        OPC_RecordChild2, // #1 = $Vm
/* 52032*/        OPC_CheckChild2Type, MVT::v2f32,
/* 52034*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52036*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52039*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52042*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGTfd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1666:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VACGTfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 52052*/      /*SwitchType*/ 23, MVT::v4i32,// ->52077
/* 52054*/        OPC_CheckChild1Type, MVT::v4f32,
/* 52056*/        OPC_RecordChild2, // #1 = $Vm
/* 52057*/        OPC_CheckChild2Type, MVT::v4f32,
/* 52059*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52061*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52064*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52067*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGTfq), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1666:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VACGTfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 52077*/      /*SwitchType*/ 23, MVT::v4i16,// ->52102
/* 52079*/        OPC_CheckChild1Type, MVT::v4f16,
/* 52081*/        OPC_RecordChild2, // #1 = $Vm
/* 52082*/        OPC_CheckChild2Type, MVT::v4f16,
/* 52084*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 52086*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52089*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52092*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGThd), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1666:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VACGThd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 52102*/      /*SwitchType*/ 23, MVT::v8i16,// ->52127
/* 52104*/        OPC_CheckChild1Type, MVT::v8f16,
/* 52106*/        OPC_RecordChild2, // #1 = $Vm
/* 52107*/        OPC_CheckChild2Type, MVT::v8f16,
/* 52109*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 52111*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52114*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52117*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VACGThq), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1666:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VACGThq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 52127*/      0, // EndSwitchType
/* 52128*/    /*Scope*/ 40|128,2/*296*/, /*->52426*/
/* 52130*/      OPC_CheckChild0Integer, 3|128,13/*1667*/, 
/* 52133*/      OPC_RecordChild1, // #0 = $src1
/* 52134*/      OPC_SwitchType /*10 cases */, 27, MVT::v8i8,// ->52164
/* 52137*/        OPC_CheckChild1Type, MVT::v8i8,
/* 52139*/        OPC_RecordChild2, // #1 = $Vn
/* 52140*/        OPC_CheckChild2Type, MVT::v8i8,
/* 52142*/        OPC_RecordChild3, // #2 = $Vm
/* 52143*/        OPC_CheckChild3Type, MVT::v8i8,
/* 52145*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52147*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52150*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52153*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                      MVT::v8i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1667:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VBSLd:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 52164*/      /*SwitchType*/ 27, MVT::v4i16,// ->52193
/* 52166*/        OPC_CheckChild1Type, MVT::v4i16,
/* 52168*/        OPC_RecordChild2, // #1 = $Vn
/* 52169*/        OPC_CheckChild2Type, MVT::v4i16,
/* 52171*/        OPC_RecordChild3, // #2 = $Vm
/* 52172*/        OPC_CheckChild3Type, MVT::v4i16,
/* 52174*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52176*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52179*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52182*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                      MVT::v4i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1667:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VBSLd:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 52193*/      /*SwitchType*/ 27, MVT::v2i32,// ->52222
/* 52195*/        OPC_CheckChild1Type, MVT::v2i32,
/* 52197*/        OPC_RecordChild2, // #1 = $Vn
/* 52198*/        OPC_CheckChild2Type, MVT::v2i32,
/* 52200*/        OPC_RecordChild3, // #2 = $Vm
/* 52201*/        OPC_CheckChild3Type, MVT::v2i32,
/* 52203*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52205*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52208*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52211*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                      MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1667:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VBSLd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 52222*/      /*SwitchType*/ 27, MVT::v1i64,// ->52251
/* 52224*/        OPC_CheckChild1Type, MVT::v1i64,
/* 52226*/        OPC_RecordChild2, // #1 = $Vn
/* 52227*/        OPC_CheckChild2Type, MVT::v1i64,
/* 52229*/        OPC_RecordChild3, // #2 = $Vm
/* 52230*/        OPC_CheckChild3Type, MVT::v1i64,
/* 52232*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52234*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52237*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52240*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                      MVT::v1i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1667:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) - Complexity = 8
                  // Dst: (VBSLd:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/* 52251*/      /*SwitchType*/ 27, MVT::v16i8,// ->52280
/* 52253*/        OPC_CheckChild1Type, MVT::v16i8,
/* 52255*/        OPC_RecordChild2, // #1 = $Vn
/* 52256*/        OPC_CheckChild2Type, MVT::v16i8,
/* 52258*/        OPC_RecordChild3, // #2 = $Vm
/* 52259*/        OPC_CheckChild3Type, MVT::v16i8,
/* 52261*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52263*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52266*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52269*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1667:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VBSLq:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 52280*/      /*SwitchType*/ 27, MVT::v8i16,// ->52309
/* 52282*/        OPC_CheckChild1Type, MVT::v8i16,
/* 52284*/        OPC_RecordChild2, // #1 = $Vn
/* 52285*/        OPC_CheckChild2Type, MVT::v8i16,
/* 52287*/        OPC_RecordChild3, // #2 = $Vm
/* 52288*/        OPC_CheckChild3Type, MVT::v8i16,
/* 52290*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52292*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52295*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52298*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1667:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VBSLq:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 52309*/      /*SwitchType*/ 27, MVT::v4i32,// ->52338
/* 52311*/        OPC_CheckChild1Type, MVT::v4i32,
/* 52313*/        OPC_RecordChild2, // #1 = $Vn
/* 52314*/        OPC_CheckChild2Type, MVT::v4i32,
/* 52316*/        OPC_RecordChild3, // #2 = $Vm
/* 52317*/        OPC_CheckChild3Type, MVT::v4i32,
/* 52319*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52321*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52324*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52327*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1667:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VBSLq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 52338*/      /*SwitchType*/ 27, MVT::v2i64,// ->52367
/* 52340*/        OPC_CheckChild1Type, MVT::v2i64,
/* 52342*/        OPC_RecordChild2, // #1 = $Vn
/* 52343*/        OPC_CheckChild2Type, MVT::v2i64,
/* 52345*/        OPC_RecordChild3, // #2 = $Vm
/* 52346*/        OPC_CheckChild3Type, MVT::v2i64,
/* 52348*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52350*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52353*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52356*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                      MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1667:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                  // Dst: (VBSLq:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 52367*/      /*SwitchType*/ 27, MVT::v2f32,// ->52396
/* 52369*/        OPC_CheckChild1Type, MVT::v2f32,
/* 52371*/        OPC_RecordChild2, // #1 = $Vn
/* 52372*/        OPC_CheckChild2Type, MVT::v2f32,
/* 52374*/        OPC_RecordChild3, // #2 = $Vm
/* 52375*/        OPC_CheckChild3Type, MVT::v2f32,
/* 52377*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52379*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52382*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52385*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLd), 0,
                      MVT::v2f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1667:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VBSLd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$src1, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 52396*/      /*SwitchType*/ 27, MVT::v4f32,// ->52425
/* 52398*/        OPC_CheckChild1Type, MVT::v4f32,
/* 52400*/        OPC_RecordChild2, // #1 = $Vn
/* 52401*/        OPC_CheckChild2Type, MVT::v4f32,
/* 52403*/        OPC_RecordChild3, // #2 = $Vm
/* 52404*/        OPC_CheckChild3Type, MVT::v4f32,
/* 52406*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52408*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52411*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52414*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VBSLq), 0,
                      MVT::v4f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1667:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VBSLq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 52425*/      0, // EndSwitchType
/* 52426*/    /*Scope*/ 0|128,2/*256*/, /*->52684*/
/* 52428*/      OPC_CheckChild0Integer, 126|128,12/*1662*/, 
/* 52431*/      OPC_RecordChild1, // #0 = $Vn
/* 52432*/      OPC_SwitchType /*10 cases */, 23, MVT::v4i16,// ->52458
/* 52435*/        OPC_CheckChild1Type, MVT::v4i16,
/* 52437*/        OPC_RecordChild2, // #1 = $Vm
/* 52438*/        OPC_CheckChild2Type, MVT::v4i16,
/* 52440*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52442*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52445*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52448*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1662:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VABDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 52458*/      /*SwitchType*/ 23, MVT::v2i32,// ->52483
/* 52460*/        OPC_CheckChild1Type, MVT::v2i32,
/* 52462*/        OPC_RecordChild2, // #1 = $Vm
/* 52463*/        OPC_CheckChild2Type, MVT::v2i32,
/* 52465*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52467*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52470*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52473*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1662:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VABDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 52483*/      /*SwitchType*/ 23, MVT::v8i16,// ->52508
/* 52485*/        OPC_CheckChild1Type, MVT::v8i16,
/* 52487*/        OPC_RecordChild2, // #1 = $Vm
/* 52488*/        OPC_CheckChild2Type, MVT::v8i16,
/* 52490*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52492*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52495*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52498*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1662:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VABDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 52508*/      /*SwitchType*/ 23, MVT::v4i32,// ->52533
/* 52510*/        OPC_CheckChild1Type, MVT::v4i32,
/* 52512*/        OPC_RecordChild2, // #1 = $Vm
/* 52513*/        OPC_CheckChild2Type, MVT::v4i32,
/* 52515*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52517*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52520*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52523*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1662:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VABDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 52533*/      /*SwitchType*/ 23, MVT::v8i8,// ->52558
/* 52535*/        OPC_CheckChild1Type, MVT::v8i8,
/* 52537*/        OPC_RecordChild2, // #1 = $Vm
/* 52538*/        OPC_CheckChild2Type, MVT::v8i8,
/* 52540*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52542*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52545*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52548*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1662:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VABDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 52558*/      /*SwitchType*/ 23, MVT::v16i8,// ->52583
/* 52560*/        OPC_CheckChild1Type, MVT::v16i8,
/* 52562*/        OPC_RecordChild2, // #1 = $Vm
/* 52563*/        OPC_CheckChild2Type, MVT::v16i8,
/* 52565*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52567*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52570*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52573*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1662:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VABDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 52583*/      /*SwitchType*/ 23, MVT::v2f32,// ->52608
/* 52585*/        OPC_CheckChild1Type, MVT::v2f32,
/* 52587*/        OPC_RecordChild2, // #1 = $Vm
/* 52588*/        OPC_CheckChild2Type, MVT::v2f32,
/* 52590*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52592*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52595*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52598*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDfd), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1662:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VABDfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 52608*/      /*SwitchType*/ 23, MVT::v4f32,// ->52633
/* 52610*/        OPC_CheckChild1Type, MVT::v4f32,
/* 52612*/        OPC_RecordChild2, // #1 = $Vm
/* 52613*/        OPC_CheckChild2Type, MVT::v4f32,
/* 52615*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52617*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52620*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52623*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDfq), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1662:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VABDfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 52633*/      /*SwitchType*/ 23, MVT::v4f16,// ->52658
/* 52635*/        OPC_CheckChild1Type, MVT::v4f16,
/* 52637*/        OPC_RecordChild2, // #1 = $Vm
/* 52638*/        OPC_CheckChild2Type, MVT::v4f16,
/* 52640*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 52642*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52645*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52648*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDhd), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1662:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VABDhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 52658*/      /*SwitchType*/ 23, MVT::v8f16,// ->52683
/* 52660*/        OPC_CheckChild1Type, MVT::v8f16,
/* 52662*/        OPC_RecordChild2, // #1 = $Vm
/* 52663*/        OPC_CheckChild2Type, MVT::v8f16,
/* 52665*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 52667*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52670*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52673*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDhq), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1662:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VABDhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 52683*/      0, // EndSwitchType
/* 52684*/    /*Scope*/ 28|128,1/*156*/, /*->52842*/
/* 52686*/      OPC_CheckChild0Integer, 127|128,12/*1663*/, 
/* 52689*/      OPC_RecordChild1, // #0 = $Vn
/* 52690*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->52716
/* 52693*/        OPC_CheckChild1Type, MVT::v4i16,
/* 52695*/        OPC_RecordChild2, // #1 = $Vm
/* 52696*/        OPC_CheckChild2Type, MVT::v4i16,
/* 52698*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52700*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52703*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52706*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1663:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VABDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 52716*/      /*SwitchType*/ 23, MVT::v2i32,// ->52741
/* 52718*/        OPC_CheckChild1Type, MVT::v2i32,
/* 52720*/        OPC_RecordChild2, // #1 = $Vm
/* 52721*/        OPC_CheckChild2Type, MVT::v2i32,
/* 52723*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52725*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52728*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52731*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1663:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VABDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 52741*/      /*SwitchType*/ 23, MVT::v8i16,// ->52766
/* 52743*/        OPC_CheckChild1Type, MVT::v8i16,
/* 52745*/        OPC_RecordChild2, // #1 = $Vm
/* 52746*/        OPC_CheckChild2Type, MVT::v8i16,
/* 52748*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52750*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52753*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52756*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1663:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VABDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 52766*/      /*SwitchType*/ 23, MVT::v4i32,// ->52791
/* 52768*/        OPC_CheckChild1Type, MVT::v4i32,
/* 52770*/        OPC_RecordChild2, // #1 = $Vm
/* 52771*/        OPC_CheckChild2Type, MVT::v4i32,
/* 52773*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52775*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52778*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52781*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1663:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VABDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 52791*/      /*SwitchType*/ 23, MVT::v8i8,// ->52816
/* 52793*/        OPC_CheckChild1Type, MVT::v8i8,
/* 52795*/        OPC_RecordChild2, // #1 = $Vm
/* 52796*/        OPC_CheckChild2Type, MVT::v8i8,
/* 52798*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52800*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52803*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52806*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1663:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VABDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 52816*/      /*SwitchType*/ 23, MVT::v16i8,// ->52841
/* 52818*/        OPC_CheckChild1Type, MVT::v16i8,
/* 52820*/        OPC_RecordChild2, // #1 = $Vm
/* 52821*/        OPC_CheckChild2Type, MVT::v16i8,
/* 52823*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52825*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52828*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52831*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1663:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VABDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 52841*/      0, // EndSwitchType
/* 52842*/    /*Scope*/ 3|128,1/*131*/, /*->52975*/
/* 52844*/      OPC_CheckChild0Integer, 50|128,13/*1714*/, 
/* 52847*/      OPC_RecordChild1, // #0 = $Vn
/* 52848*/      OPC_SwitchType /*5 cases */, 23, MVT::v8i8,// ->52874
/* 52851*/        OPC_CheckChild1Type, MVT::v8i8,
/* 52853*/        OPC_RecordChild2, // #1 = $Vm
/* 52854*/        OPC_CheckChild2Type, MVT::v8i8,
/* 52856*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52858*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52861*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52864*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDi8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1714:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADDi8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 52874*/      /*SwitchType*/ 23, MVT::v4i16,// ->52899
/* 52876*/        OPC_CheckChild1Type, MVT::v4i16,
/* 52878*/        OPC_RecordChild2, // #1 = $Vm
/* 52879*/        OPC_CheckChild2Type, MVT::v4i16,
/* 52881*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52883*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52886*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52889*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDi16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1714:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADDi16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 52899*/      /*SwitchType*/ 23, MVT::v2i32,// ->52924
/* 52901*/        OPC_CheckChild1Type, MVT::v2i32,
/* 52903*/        OPC_RecordChild2, // #1 = $Vm
/* 52904*/        OPC_CheckChild2Type, MVT::v2i32,
/* 52906*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52908*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52911*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52914*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDi32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1714:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADDi32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 52924*/      /*SwitchType*/ 23, MVT::v2f32,// ->52949
/* 52926*/        OPC_CheckChild1Type, MVT::v2f32,
/* 52928*/        OPC_RecordChild2, // #1 = $Vm
/* 52929*/        OPC_CheckChild2Type, MVT::v2f32,
/* 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::VPADDf), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1714:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VPADDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 52949*/      /*SwitchType*/ 23, MVT::v4f16,// ->52974
/* 52951*/        OPC_CheckChild1Type, MVT::v4f16,
/* 52953*/        OPC_RecordChild2, // #1 = $Vm
/* 52954*/        OPC_CheckChild2Type, MVT::v4f16,
/* 52956*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 52958*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52961*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52964*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDh), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1714:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VPADDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 52974*/      0, // EndSwitchType
/* 52975*/    /*Scope*/ 4|128,1/*132*/, /*->53109*/
/* 52977*/      OPC_CheckChild0Integer, 51|128,13/*1715*/, 
/* 52980*/      OPC_RecordChild1, // #0 = $Vm
/* 52981*/      OPC_SwitchType /*6 cases */, 19, MVT::v4i16,// ->53003
/* 52984*/        OPC_CheckChild1Type, MVT::v8i8,
/* 52986*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 52988*/        OPC_EmitInteger, MVT::i32, 14, 
/* 52991*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 52994*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLsv8i8), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1715:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLsv8i8:{ *:[v4i16] } DPR:{ *:[v8i8] }:$Vm)
/* 53003*/      /*SwitchType*/ 19, MVT::v2i32,// ->53024
/* 53005*/        OPC_CheckChild1Type, MVT::v4i16,
/* 53007*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53009*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53012*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53015*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLsv4i16), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1715:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLsv4i16:{ *:[v2i32] } DPR:{ *:[v4i16] }:$Vm)
/* 53024*/      /*SwitchType*/ 19, MVT::v1i64,// ->53045
/* 53026*/        OPC_CheckChild1Type, MVT::v2i32,
/* 53028*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53030*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53033*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53036*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLsv2i32), 0,
                      MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1715:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLsv2i32:{ *:[v1i64] } DPR:{ *:[v2i32] }:$Vm)
/* 53045*/      /*SwitchType*/ 19, MVT::v8i16,// ->53066
/* 53047*/        OPC_CheckChild1Type, MVT::v16i8,
/* 53049*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53051*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53054*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53057*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLsv16i8), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1715:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLsv16i8:{ *:[v8i16] } QPR:{ *:[v16i8] }:$Vm)
/* 53066*/      /*SwitchType*/ 19, MVT::v4i32,// ->53087
/* 53068*/        OPC_CheckChild1Type, MVT::v8i16,
/* 53070*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53072*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53075*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53078*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLsv8i16), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1715:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLsv8i16:{ *:[v4i32] } QPR:{ *:[v8i16] }:$Vm)
/* 53087*/      /*SwitchType*/ 19, MVT::v2i64,// ->53108
/* 53089*/        OPC_CheckChild1Type, MVT::v4i32,
/* 53091*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53093*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53096*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53099*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLsv4i32), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1715:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLsv4i32:{ *:[v2i64] } QPR:{ *:[v4i32] }:$Vm)
/* 53108*/      0, // EndSwitchType
/* 53109*/    /*Scope*/ 4|128,1/*132*/, /*->53243*/
/* 53111*/      OPC_CheckChild0Integer, 52|128,13/*1716*/, 
/* 53114*/      OPC_RecordChild1, // #0 = $Vm
/* 53115*/      OPC_SwitchType /*6 cases */, 19, MVT::v4i16,// ->53137
/* 53118*/        OPC_CheckChild1Type, MVT::v8i8,
/* 53120*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53122*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53125*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53128*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLuv8i8), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1716:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLuv8i8:{ *:[v4i16] } DPR:{ *:[v8i8] }:$Vm)
/* 53137*/      /*SwitchType*/ 19, MVT::v2i32,// ->53158
/* 53139*/        OPC_CheckChild1Type, MVT::v4i16,
/* 53141*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53143*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53146*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53149*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLuv4i16), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1716:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLuv4i16:{ *:[v2i32] } DPR:{ *:[v4i16] }:$Vm)
/* 53158*/      /*SwitchType*/ 19, MVT::v1i64,// ->53179
/* 53160*/        OPC_CheckChild1Type, MVT::v2i32,
/* 53162*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53164*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53167*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53170*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLuv2i32), 0,
                      MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1716:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLuv2i32:{ *:[v1i64] } DPR:{ *:[v2i32] }:$Vm)
/* 53179*/      /*SwitchType*/ 19, MVT::v8i16,// ->53200
/* 53181*/        OPC_CheckChild1Type, MVT::v16i8,
/* 53183*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53185*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53188*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53191*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLuv16i8), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1716:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLuv16i8:{ *:[v8i16] } QPR:{ *:[v16i8] }:$Vm)
/* 53200*/      /*SwitchType*/ 19, MVT::v4i32,// ->53221
/* 53202*/        OPC_CheckChild1Type, MVT::v8i16,
/* 53204*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53206*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53209*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53212*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLuv8i16), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1716:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLuv8i16:{ *:[v4i32] } QPR:{ *:[v8i16] }:$Vm)
/* 53221*/      /*SwitchType*/ 19, MVT::v2i64,// ->53242
/* 53223*/        OPC_CheckChild1Type, MVT::v4i32,
/* 53225*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53227*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53230*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53233*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADDLuv4i32), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1716:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADDLuv4i32:{ *:[v2i64] } QPR:{ *:[v4i32] }:$Vm)
/* 53242*/      0, // EndSwitchType
/* 53243*/    /*Scope*/ 28|128,1/*156*/, /*->53401*/
/* 53245*/      OPC_CheckChild0Integer, 48|128,13/*1712*/, 
/* 53248*/      OPC_RecordChild1, // #0 = $src1
/* 53249*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->53275
/* 53252*/        OPC_CheckChild1Type, MVT::v4i16,
/* 53254*/        OPC_RecordChild2, // #1 = $Vm
/* 53255*/        OPC_CheckChild2Type, MVT::v8i8,
/* 53257*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53259*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53262*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53265*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALsv8i8), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1712:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADALsv8i8:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm)
/* 53275*/      /*SwitchType*/ 23, MVT::v2i32,// ->53300
/* 53277*/        OPC_CheckChild1Type, MVT::v2i32,
/* 53279*/        OPC_RecordChild2, // #1 = $Vm
/* 53280*/        OPC_CheckChild2Type, MVT::v4i16,
/* 53282*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53284*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53287*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53290*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALsv4i16), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1712:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADALsv4i16:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm)
/* 53300*/      /*SwitchType*/ 23, MVT::v1i64,// ->53325
/* 53302*/        OPC_CheckChild1Type, MVT::v1i64,
/* 53304*/        OPC_RecordChild2, // #1 = $Vm
/* 53305*/        OPC_CheckChild2Type, MVT::v2i32,
/* 53307*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53309*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53312*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53315*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALsv2i32), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1712:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADALsv2i32:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm)
/* 53325*/      /*SwitchType*/ 23, MVT::v8i16,// ->53350
/* 53327*/        OPC_CheckChild1Type, MVT::v8i16,
/* 53329*/        OPC_RecordChild2, // #1 = $Vm
/* 53330*/        OPC_CheckChild2Type, MVT::v16i8,
/* 53332*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53334*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53337*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53340*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALsv16i8), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1712:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADALsv16i8:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm)
/* 53350*/      /*SwitchType*/ 23, MVT::v4i32,// ->53375
/* 53352*/        OPC_CheckChild1Type, MVT::v4i32,
/* 53354*/        OPC_RecordChild2, // #1 = $Vm
/* 53355*/        OPC_CheckChild2Type, MVT::v8i16,
/* 53357*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53359*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53362*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53365*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALsv8i16), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1712:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADALsv8i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm)
/* 53375*/      /*SwitchType*/ 23, MVT::v2i64,// ->53400
/* 53377*/        OPC_CheckChild1Type, MVT::v2i64,
/* 53379*/        OPC_RecordChild2, // #1 = $Vm
/* 53380*/        OPC_CheckChild2Type, MVT::v4i32,
/* 53382*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53384*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53387*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53390*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALsv4i32), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1712:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADALsv4i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm)
/* 53400*/      0, // EndSwitchType
/* 53401*/    /*Scope*/ 28|128,1/*156*/, /*->53559*/
/* 53403*/      OPC_CheckChild0Integer, 49|128,13/*1713*/, 
/* 53406*/      OPC_RecordChild1, // #0 = $src1
/* 53407*/      OPC_SwitchType /*6 cases */, 23, MVT::v4i16,// ->53433
/* 53410*/        OPC_CheckChild1Type, MVT::v4i16,
/* 53412*/        OPC_RecordChild2, // #1 = $Vm
/* 53413*/        OPC_CheckChild2Type, MVT::v8i8,
/* 53415*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53417*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53420*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53423*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALuv8i8), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1713:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADALuv8i8:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v8i8] }:$Vm)
/* 53433*/      /*SwitchType*/ 23, MVT::v2i32,// ->53458
/* 53435*/        OPC_CheckChild1Type, MVT::v2i32,
/* 53437*/        OPC_RecordChild2, // #1 = $Vm
/* 53438*/        OPC_CheckChild2Type, MVT::v4i16,
/* 53440*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53442*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53445*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53448*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALuv4i16), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1713:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADALuv4i16:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v4i16] }:$Vm)
/* 53458*/      /*SwitchType*/ 23, MVT::v1i64,// ->53483
/* 53460*/        OPC_CheckChild1Type, MVT::v1i64,
/* 53462*/        OPC_RecordChild2, // #1 = $Vm
/* 53463*/        OPC_CheckChild2Type, MVT::v2i32,
/* 53465*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53467*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53470*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53473*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALuv2i32), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1713:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADALuv2i32:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v2i32] }:$Vm)
/* 53483*/      /*SwitchType*/ 23, MVT::v8i16,// ->53508
/* 53485*/        OPC_CheckChild1Type, MVT::v8i16,
/* 53487*/        OPC_RecordChild2, // #1 = $Vm
/* 53488*/        OPC_CheckChild2Type, MVT::v16i8,
/* 53490*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53492*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53495*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53498*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALuv16i8), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1713:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VPADALuv16i8:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v16i8] }:$Vm)
/* 53508*/      /*SwitchType*/ 23, MVT::v4i32,// ->53533
/* 53510*/        OPC_CheckChild1Type, MVT::v4i32,
/* 53512*/        OPC_RecordChild2, // #1 = $Vm
/* 53513*/        OPC_CheckChild2Type, MVT::v8i16,
/* 53515*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53517*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53520*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53523*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALuv8i16), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1713:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VPADALuv8i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v8i16] }:$Vm)
/* 53533*/      /*SwitchType*/ 23, MVT::v2i64,// ->53558
/* 53535*/        OPC_CheckChild1Type, MVT::v2i64,
/* 53537*/        OPC_RecordChild2, // #1 = $Vm
/* 53538*/        OPC_CheckChild2Type, MVT::v4i32,
/* 53540*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53542*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53545*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53548*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPADALuv4i32), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1713:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VPADALuv4i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v4i32] }:$Vm)
/* 53558*/      0, // EndSwitchType
/* 53559*/    /*Scope*/ 3|128,1/*131*/, /*->53692*/
/* 53561*/      OPC_CheckChild0Integer, 53|128,13/*1717*/, 
/* 53564*/      OPC_RecordChild1, // #0 = $Vn
/* 53565*/      OPC_SwitchType /*5 cases */, 23, MVT::v8i8,// ->53591
/* 53568*/        OPC_CheckChild1Type, MVT::v8i8,
/* 53570*/        OPC_RecordChild2, // #1 = $Vm
/* 53571*/        OPC_CheckChild2Type, MVT::v8i8,
/* 53573*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53575*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53578*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53581*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXs8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1717:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXs8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 53591*/      /*SwitchType*/ 23, MVT::v4i16,// ->53616
/* 53593*/        OPC_CheckChild1Type, MVT::v4i16,
/* 53595*/        OPC_RecordChild2, // #1 = $Vm
/* 53596*/        OPC_CheckChild2Type, MVT::v4i16,
/* 53598*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53600*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53603*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53606*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXs16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1717:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXs16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 53616*/      /*SwitchType*/ 23, MVT::v2i32,// ->53641
/* 53618*/        OPC_CheckChild1Type, MVT::v2i32,
/* 53620*/        OPC_RecordChild2, // #1 = $Vm
/* 53621*/        OPC_CheckChild2Type, MVT::v2i32,
/* 53623*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53625*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53628*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53631*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXs32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1717:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXs32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 53641*/      /*SwitchType*/ 23, MVT::v2f32,// ->53666
/* 53643*/        OPC_CheckChild1Type, MVT::v2f32,
/* 53645*/        OPC_RecordChild2, // #1 = $Vm
/* 53646*/        OPC_CheckChild2Type, MVT::v2f32,
/* 53648*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53650*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53653*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53656*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXf), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1717:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 53666*/      /*SwitchType*/ 23, MVT::v4f16,// ->53691
/* 53668*/        OPC_CheckChild1Type, MVT::v4f16,
/* 53670*/        OPC_RecordChild2, // #1 = $Vm
/* 53671*/        OPC_CheckChild2Type, MVT::v4f16,
/* 53673*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 53675*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53678*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53681*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXh), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1717:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 53691*/      0, // EndSwitchType
/* 53692*/    /*Scope*/ 81, /*->53774*/
/* 53693*/      OPC_CheckChild0Integer, 54|128,13/*1718*/, 
/* 53696*/      OPC_RecordChild1, // #0 = $Vn
/* 53697*/      OPC_SwitchType /*3 cases */, 23, MVT::v8i8,// ->53723
/* 53700*/        OPC_CheckChild1Type, MVT::v8i8,
/* 53702*/        OPC_RecordChild2, // #1 = $Vm
/* 53703*/        OPC_CheckChild2Type, MVT::v8i8,
/* 53705*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53707*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53710*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53713*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXu8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1718:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXu8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 53723*/      /*SwitchType*/ 23, MVT::v4i16,// ->53748
/* 53725*/        OPC_CheckChild1Type, MVT::v4i16,
/* 53727*/        OPC_RecordChild2, // #1 = $Vm
/* 53728*/        OPC_CheckChild2Type, MVT::v4i16,
/* 53730*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53732*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53735*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53738*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXu16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1718:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXu16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 53748*/      /*SwitchType*/ 23, MVT::v2i32,// ->53773
/* 53750*/        OPC_CheckChild1Type, MVT::v2i32,
/* 53752*/        OPC_RecordChild2, // #1 = $Vm
/* 53753*/        OPC_CheckChild2Type, MVT::v2i32,
/* 53755*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53757*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53760*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53763*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMAXu32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1718:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPMAXu32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 53773*/      0, // EndSwitchType
/* 53774*/    /*Scope*/ 3|128,1/*131*/, /*->53907*/
/* 53776*/      OPC_CheckChild0Integer, 55|128,13/*1719*/, 
/* 53779*/      OPC_RecordChild1, // #0 = $Vn
/* 53780*/      OPC_SwitchType /*5 cases */, 23, MVT::v8i8,// ->53806
/* 53783*/        OPC_CheckChild1Type, MVT::v8i8,
/* 53785*/        OPC_RecordChild2, // #1 = $Vm
/* 53786*/        OPC_CheckChild2Type, MVT::v8i8,
/* 53788*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53790*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53793*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53796*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINs8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1719:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPMINs8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 53806*/      /*SwitchType*/ 23, MVT::v4i16,// ->53831
/* 53808*/        OPC_CheckChild1Type, MVT::v4i16,
/* 53810*/        OPC_RecordChild2, // #1 = $Vm
/* 53811*/        OPC_CheckChild2Type, MVT::v4i16,
/* 53813*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53815*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53818*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53821*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINs16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1719:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPMINs16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 53831*/      /*SwitchType*/ 23, MVT::v2i32,// ->53856
/* 53833*/        OPC_CheckChild1Type, MVT::v2i32,
/* 53835*/        OPC_RecordChild2, // #1 = $Vm
/* 53836*/        OPC_CheckChild2Type, MVT::v2i32,
/* 53838*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53840*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53843*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53846*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINs32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1719:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPMINs32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 53856*/      /*SwitchType*/ 23, MVT::v2f32,// ->53881
/* 53858*/        OPC_CheckChild1Type, MVT::v2f32,
/* 53860*/        OPC_RecordChild2, // #1 = $Vm
/* 53861*/        OPC_CheckChild2Type, MVT::v2f32,
/* 53863*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53865*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53868*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53871*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINf), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1719:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VPMINf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 53881*/      /*SwitchType*/ 23, MVT::v4f16,// ->53906
/* 53883*/        OPC_CheckChild1Type, MVT::v4f16,
/* 53885*/        OPC_RecordChild2, // #1 = $Vm
/* 53886*/        OPC_CheckChild2Type, MVT::v4f16,
/* 53888*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 53890*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53893*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53896*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINh), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1719:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VPMINh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 53906*/      0, // EndSwitchType
/* 53907*/    /*Scope*/ 81, /*->53989*/
/* 53908*/      OPC_CheckChild0Integer, 56|128,13/*1720*/, 
/* 53911*/      OPC_RecordChild1, // #0 = $Vn
/* 53912*/      OPC_SwitchType /*3 cases */, 23, MVT::v8i8,// ->53938
/* 53915*/        OPC_CheckChild1Type, MVT::v8i8,
/* 53917*/        OPC_RecordChild2, // #1 = $Vm
/* 53918*/        OPC_CheckChild2Type, MVT::v8i8,
/* 53920*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53922*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53925*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53928*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINu8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1720:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VPMINu8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 53938*/      /*SwitchType*/ 23, MVT::v4i16,// ->53963
/* 53940*/        OPC_CheckChild1Type, MVT::v4i16,
/* 53942*/        OPC_RecordChild2, // #1 = $Vm
/* 53943*/        OPC_CheckChild2Type, MVT::v4i16,
/* 53945*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53947*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53950*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53953*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINu16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1720:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VPMINu16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 53963*/      /*SwitchType*/ 23, MVT::v2i32,// ->53988
/* 53965*/        OPC_CheckChild1Type, MVT::v2i32,
/* 53967*/        OPC_RecordChild2, // #1 = $Vm
/* 53968*/        OPC_CheckChild2Type, MVT::v2i32,
/* 53970*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 53972*/        OPC_EmitInteger, MVT::i32, 14, 
/* 53975*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 53978*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VPMINu32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1720:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VPMINu32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 53988*/      0, // EndSwitchType
/* 53989*/    /*Scope*/ 4|128,1/*132*/, /*->54123*/
/* 53991*/      OPC_CheckChild0Integer, 77|128,13/*1741*/, 
/* 53994*/      OPC_RecordChild1, // #0 = $Vm
/* 53995*/      OPC_SwitchType /*6 cases */, 19, MVT::v2i32,// ->54017
/* 53998*/        OPC_CheckChild1Type, MVT::v2i32,
/* 54000*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54002*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54005*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54008*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPEd), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1741:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VRECPEd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 54017*/      /*SwitchType*/ 19, MVT::v4i32,// ->54038
/* 54019*/        OPC_CheckChild1Type, MVT::v4i32,
/* 54021*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54023*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54026*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54029*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPEq), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1741:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VRECPEq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 54038*/      /*SwitchType*/ 19, MVT::v2f32,// ->54059
/* 54040*/        OPC_CheckChild1Type, MVT::v2f32,
/* 54042*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54044*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54047*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54050*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPEfd), 0,
                      MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1741:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRECPEfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 54059*/      /*SwitchType*/ 19, MVT::v4f32,// ->54080
/* 54061*/        OPC_CheckChild1Type, MVT::v4f32,
/* 54063*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54065*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54068*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54071*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPEfq), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1741:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRECPEfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 54080*/      /*SwitchType*/ 19, MVT::v4f16,// ->54101
/* 54082*/        OPC_CheckChild1Type, MVT::v4f16,
/* 54084*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 54086*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54089*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54092*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPEhd), 0,
                      MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1741:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRECPEhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 54101*/      /*SwitchType*/ 19, MVT::v8f16,// ->54122
/* 54103*/        OPC_CheckChild1Type, MVT::v8f16,
/* 54105*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 54107*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54110*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54113*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPEhq), 0,
                      MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1741:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRECPEhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 54122*/      0, // EndSwitchType
/* 54123*/    /*Scope*/ 4|128,1/*132*/, /*->54257*/
/* 54125*/      OPC_CheckChild0Integer, 90|128,13/*1754*/, 
/* 54128*/      OPC_RecordChild1, // #0 = $Vm
/* 54129*/      OPC_SwitchType /*6 cases */, 19, MVT::v2i32,// ->54151
/* 54132*/        OPC_CheckChild1Type, MVT::v2i32,
/* 54134*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54136*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54139*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54142*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTEd), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1754:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTEd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 54151*/      /*SwitchType*/ 19, MVT::v4i32,// ->54172
/* 54153*/        OPC_CheckChild1Type, MVT::v4i32,
/* 54155*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54157*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54160*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54163*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTEq), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1754:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTEq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 54172*/      /*SwitchType*/ 19, MVT::v2f32,// ->54193
/* 54174*/        OPC_CheckChild1Type, MVT::v2f32,
/* 54176*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54178*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54181*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54184*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTEfd), 0,
                      MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1754:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTEfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 54193*/      /*SwitchType*/ 19, MVT::v4f32,// ->54214
/* 54195*/        OPC_CheckChild1Type, MVT::v4f32,
/* 54197*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54199*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54202*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54205*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTEfq), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1754:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTEfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 54214*/      /*SwitchType*/ 19, MVT::v4f16,// ->54235
/* 54216*/        OPC_CheckChild1Type, MVT::v4f16,
/* 54218*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 54220*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54223*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54226*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTEhd), 0,
                      MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1754:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTEhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 54235*/      /*SwitchType*/ 19, MVT::v8f16,// ->54256
/* 54237*/        OPC_CheckChild1Type, MVT::v8f16,
/* 54239*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 54241*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54244*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54247*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTEhq), 0,
                      MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1754:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTEhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 54256*/      0, // EndSwitchType
/* 54257*/    /*Scope*/ 78|128,1/*206*/, /*->54465*/
/* 54259*/      OPC_CheckChild0Integer, 94|128,13/*1758*/, 
/* 54262*/      OPC_RecordChild1, // #0 = $Vm
/* 54263*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->54289
/* 54266*/        OPC_CheckChild1Type, MVT::v4i16,
/* 54268*/        OPC_RecordChild2, // #1 = $Vn
/* 54269*/        OPC_CheckChild2Type, MVT::v4i16,
/* 54271*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54273*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54276*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54279*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1758:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 54289*/      /*SwitchType*/ 23, MVT::v2i32,// ->54314
/* 54291*/        OPC_CheckChild1Type, MVT::v2i32,
/* 54293*/        OPC_RecordChild2, // #1 = $Vn
/* 54294*/        OPC_CheckChild2Type, MVT::v2i32,
/* 54296*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54298*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54301*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54304*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1758:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 54314*/      /*SwitchType*/ 23, MVT::v8i16,// ->54339
/* 54316*/        OPC_CheckChild1Type, MVT::v8i16,
/* 54318*/        OPC_RecordChild2, // #1 = $Vn
/* 54319*/        OPC_CheckChild2Type, MVT::v8i16,
/* 54321*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54323*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54326*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54329*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1758:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 54339*/      /*SwitchType*/ 23, MVT::v4i32,// ->54364
/* 54341*/        OPC_CheckChild1Type, MVT::v4i32,
/* 54343*/        OPC_RecordChild2, // #1 = $Vn
/* 54344*/        OPC_CheckChild2Type, MVT::v4i32,
/* 54346*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54348*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54351*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54354*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1758:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 54364*/      /*SwitchType*/ 23, MVT::v8i8,// ->54389
/* 54366*/        OPC_CheckChild1Type, MVT::v8i8,
/* 54368*/        OPC_RecordChild2, // #1 = $Vn
/* 54369*/        OPC_CheckChild2Type, MVT::v8i8,
/* 54371*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54373*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54376*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54379*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1758:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 54389*/      /*SwitchType*/ 23, MVT::v16i8,// ->54414
/* 54391*/        OPC_CheckChild1Type, MVT::v16i8,
/* 54393*/        OPC_RecordChild2, // #1 = $Vn
/* 54394*/        OPC_CheckChild2Type, MVT::v16i8,
/* 54396*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54398*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54401*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54404*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1758:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 54414*/      /*SwitchType*/ 23, MVT::v1i64,// ->54439
/* 54416*/        OPC_CheckChild1Type, MVT::v1i64,
/* 54418*/        OPC_RecordChild2, // #1 = $Vn
/* 54419*/        OPC_CheckChild2Type, MVT::v1i64,
/* 54421*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54423*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54426*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54429*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1758:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 54439*/      /*SwitchType*/ 23, MVT::v2i64,// ->54464
/* 54441*/        OPC_CheckChild1Type, MVT::v2i64,
/* 54443*/        OPC_RecordChild2, // #1 = $Vn
/* 54444*/        OPC_CheckChild2Type, MVT::v2i64,
/* 54446*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54448*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54451*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54454*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1758:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 54464*/      0, // EndSwitchType
/* 54465*/    /*Scope*/ 78|128,1/*206*/, /*->54673*/
/* 54467*/      OPC_CheckChild0Integer, 95|128,13/*1759*/, 
/* 54470*/      OPC_RecordChild1, // #0 = $Vm
/* 54471*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->54497
/* 54474*/        OPC_CheckChild1Type, MVT::v4i16,
/* 54476*/        OPC_RecordChild2, // #1 = $Vn
/* 54477*/        OPC_CheckChild2Type, MVT::v4i16,
/* 54479*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54481*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54484*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54487*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1759:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 54497*/      /*SwitchType*/ 23, MVT::v2i32,// ->54522
/* 54499*/        OPC_CheckChild1Type, MVT::v2i32,
/* 54501*/        OPC_RecordChild2, // #1 = $Vn
/* 54502*/        OPC_CheckChild2Type, MVT::v2i32,
/* 54504*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54506*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54509*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54512*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1759:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 54522*/      /*SwitchType*/ 23, MVT::v8i16,// ->54547
/* 54524*/        OPC_CheckChild1Type, MVT::v8i16,
/* 54526*/        OPC_RecordChild2, // #1 = $Vn
/* 54527*/        OPC_CheckChild2Type, MVT::v8i16,
/* 54529*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54531*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54534*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54537*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1759:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 54547*/      /*SwitchType*/ 23, MVT::v4i32,// ->54572
/* 54549*/        OPC_CheckChild1Type, MVT::v4i32,
/* 54551*/        OPC_RecordChild2, // #1 = $Vn
/* 54552*/        OPC_CheckChild2Type, MVT::v4i32,
/* 54554*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54556*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54559*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54562*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1759:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 54572*/      /*SwitchType*/ 23, MVT::v8i8,// ->54597
/* 54574*/        OPC_CheckChild1Type, MVT::v8i8,
/* 54576*/        OPC_RecordChild2, // #1 = $Vn
/* 54577*/        OPC_CheckChild2Type, MVT::v8i8,
/* 54579*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54581*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54584*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54587*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1759:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 54597*/      /*SwitchType*/ 23, MVT::v16i8,// ->54622
/* 54599*/        OPC_CheckChild1Type, MVT::v16i8,
/* 54601*/        OPC_RecordChild2, // #1 = $Vn
/* 54602*/        OPC_CheckChild2Type, MVT::v16i8,
/* 54604*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54606*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54609*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54612*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1759:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 54622*/      /*SwitchType*/ 23, MVT::v1i64,// ->54647
/* 54624*/        OPC_CheckChild1Type, MVT::v1i64,
/* 54626*/        OPC_RecordChild2, // #1 = $Vn
/* 54627*/        OPC_CheckChild2Type, MVT::v1i64,
/* 54629*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54631*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54634*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54637*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1759:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 54647*/      /*SwitchType*/ 23, MVT::v2i64,// ->54672
/* 54649*/        OPC_CheckChild1Type, MVT::v2i64,
/* 54651*/        OPC_RecordChild2, // #1 = $Vn
/* 54652*/        OPC_CheckChild2Type, MVT::v2i64,
/* 54654*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54656*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54659*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54662*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1759:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 54672*/      0, // EndSwitchType
/* 54673*/    /*Scope*/ 78|128,1/*206*/, /*->54881*/
/* 54675*/      OPC_CheckChild0Integer, 88|128,13/*1752*/, 
/* 54678*/      OPC_RecordChild1, // #0 = $Vm
/* 54679*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->54705
/* 54682*/        OPC_CheckChild1Type, MVT::v4i16,
/* 54684*/        OPC_RecordChild2, // #1 = $Vn
/* 54685*/        OPC_CheckChild2Type, MVT::v4i16,
/* 54687*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54689*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54692*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54695*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1752:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 54705*/      /*SwitchType*/ 23, MVT::v2i32,// ->54730
/* 54707*/        OPC_CheckChild1Type, MVT::v2i32,
/* 54709*/        OPC_RecordChild2, // #1 = $Vn
/* 54710*/        OPC_CheckChild2Type, MVT::v2i32,
/* 54712*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54714*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54717*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54720*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1752:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 54730*/      /*SwitchType*/ 23, MVT::v8i16,// ->54755
/* 54732*/        OPC_CheckChild1Type, MVT::v8i16,
/* 54734*/        OPC_RecordChild2, // #1 = $Vn
/* 54735*/        OPC_CheckChild2Type, MVT::v8i16,
/* 54737*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54739*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54742*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54745*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1752:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 54755*/      /*SwitchType*/ 23, MVT::v4i32,// ->54780
/* 54757*/        OPC_CheckChild1Type, MVT::v4i32,
/* 54759*/        OPC_RecordChild2, // #1 = $Vn
/* 54760*/        OPC_CheckChild2Type, MVT::v4i32,
/* 54762*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54764*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54767*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54770*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1752:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 54780*/      /*SwitchType*/ 23, MVT::v8i8,// ->54805
/* 54782*/        OPC_CheckChild1Type, MVT::v8i8,
/* 54784*/        OPC_RecordChild2, // #1 = $Vn
/* 54785*/        OPC_CheckChild2Type, MVT::v8i8,
/* 54787*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54789*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54792*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54795*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1752:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 54805*/      /*SwitchType*/ 23, MVT::v16i8,// ->54830
/* 54807*/        OPC_CheckChild1Type, MVT::v16i8,
/* 54809*/        OPC_RecordChild2, // #1 = $Vn
/* 54810*/        OPC_CheckChild2Type, MVT::v16i8,
/* 54812*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54814*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54817*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54820*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1752:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 54830*/      /*SwitchType*/ 23, MVT::v1i64,// ->54855
/* 54832*/        OPC_CheckChild1Type, MVT::v1i64,
/* 54834*/        OPC_RecordChild2, // #1 = $Vn
/* 54835*/        OPC_CheckChild2Type, MVT::v1i64,
/* 54837*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54839*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54842*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54845*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1752:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 54855*/      /*SwitchType*/ 23, MVT::v2i64,// ->54880
/* 54857*/        OPC_CheckChild1Type, MVT::v2i64,
/* 54859*/        OPC_RecordChild2, // #1 = $Vn
/* 54860*/        OPC_CheckChild2Type, MVT::v2i64,
/* 54862*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54864*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54867*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54870*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLsv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1752:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 54880*/      0, // EndSwitchType
/* 54881*/    /*Scope*/ 78|128,1/*206*/, /*->55089*/
/* 54883*/      OPC_CheckChild0Integer, 89|128,13/*1753*/, 
/* 54886*/      OPC_RecordChild1, // #0 = $Vm
/* 54887*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->54913
/* 54890*/        OPC_CheckChild1Type, MVT::v4i16,
/* 54892*/        OPC_RecordChild2, // #1 = $Vn
/* 54893*/        OPC_CheckChild2Type, MVT::v4i16,
/* 54895*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54897*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54900*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54903*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1753:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 54913*/      /*SwitchType*/ 23, MVT::v2i32,// ->54938
/* 54915*/        OPC_CheckChild1Type, MVT::v2i32,
/* 54917*/        OPC_RecordChild2, // #1 = $Vn
/* 54918*/        OPC_CheckChild2Type, MVT::v2i32,
/* 54920*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54922*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54925*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54928*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1753:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 54938*/      /*SwitchType*/ 23, MVT::v8i16,// ->54963
/* 54940*/        OPC_CheckChild1Type, MVT::v8i16,
/* 54942*/        OPC_RecordChild2, // #1 = $Vn
/* 54943*/        OPC_CheckChild2Type, MVT::v8i16,
/* 54945*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54947*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54950*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54953*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1753:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 54963*/      /*SwitchType*/ 23, MVT::v4i32,// ->54988
/* 54965*/        OPC_CheckChild1Type, MVT::v4i32,
/* 54967*/        OPC_RecordChild2, // #1 = $Vn
/* 54968*/        OPC_CheckChild2Type, MVT::v4i32,
/* 54970*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54972*/        OPC_EmitInteger, MVT::i32, 14, 
/* 54975*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 54978*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1753:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 54988*/      /*SwitchType*/ 23, MVT::v8i8,// ->55013
/* 54990*/        OPC_CheckChild1Type, MVT::v8i8,
/* 54992*/        OPC_RecordChild2, // #1 = $Vn
/* 54993*/        OPC_CheckChild2Type, MVT::v8i8,
/* 54995*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 54997*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55000*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55003*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1753:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 55013*/      /*SwitchType*/ 23, MVT::v16i8,// ->55038
/* 55015*/        OPC_CheckChild1Type, MVT::v16i8,
/* 55017*/        OPC_RecordChild2, // #1 = $Vn
/* 55018*/        OPC_CheckChild2Type, MVT::v16i8,
/* 55020*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55022*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55025*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55028*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1753:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 55038*/      /*SwitchType*/ 23, MVT::v1i64,// ->55063
/* 55040*/        OPC_CheckChild1Type, MVT::v1i64,
/* 55042*/        OPC_RecordChild2, // #1 = $Vn
/* 55043*/        OPC_CheckChild2Type, MVT::v1i64,
/* 55045*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55047*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55050*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55053*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1753:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 55063*/      /*SwitchType*/ 23, MVT::v2i64,// ->55088
/* 55065*/        OPC_CheckChild1Type, MVT::v2i64,
/* 55067*/        OPC_RecordChild2, // #1 = $Vn
/* 55068*/        OPC_CheckChild2Type, MVT::v2i64,
/* 55070*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55072*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55075*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55078*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHLuv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1753:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VRSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 55088*/      0, // EndSwitchType
/* 55089*/    /*Scope*/ 78|128,1/*206*/, /*->55297*/
/* 55091*/      OPC_CheckChild0Integer, 73|128,13/*1737*/, 
/* 55094*/      OPC_RecordChild1, // #0 = $Vm
/* 55095*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->55121
/* 55098*/        OPC_CheckChild1Type, MVT::v4i16,
/* 55100*/        OPC_RecordChild2, // #1 = $Vn
/* 55101*/        OPC_CheckChild2Type, MVT::v4i16,
/* 55103*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55105*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55108*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55111*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1737:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 55121*/      /*SwitchType*/ 23, MVT::v2i32,// ->55146
/* 55123*/        OPC_CheckChild1Type, MVT::v2i32,
/* 55125*/        OPC_RecordChild2, // #1 = $Vn
/* 55126*/        OPC_CheckChild2Type, MVT::v2i32,
/* 55128*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55130*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55133*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55136*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1737:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 55146*/      /*SwitchType*/ 23, MVT::v8i16,// ->55171
/* 55148*/        OPC_CheckChild1Type, MVT::v8i16,
/* 55150*/        OPC_RecordChild2, // #1 = $Vn
/* 55151*/        OPC_CheckChild2Type, MVT::v8i16,
/* 55153*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55155*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55158*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55161*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1737:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 55171*/      /*SwitchType*/ 23, MVT::v4i32,// ->55196
/* 55173*/        OPC_CheckChild1Type, MVT::v4i32,
/* 55175*/        OPC_RecordChild2, // #1 = $Vn
/* 55176*/        OPC_CheckChild2Type, MVT::v4i32,
/* 55178*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55180*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55183*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55186*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1737:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 55196*/      /*SwitchType*/ 23, MVT::v8i8,// ->55221
/* 55198*/        OPC_CheckChild1Type, MVT::v8i8,
/* 55200*/        OPC_RecordChild2, // #1 = $Vn
/* 55201*/        OPC_CheckChild2Type, MVT::v8i8,
/* 55203*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55205*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55208*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55211*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1737:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 55221*/      /*SwitchType*/ 23, MVT::v16i8,// ->55246
/* 55223*/        OPC_CheckChild1Type, MVT::v16i8,
/* 55225*/        OPC_RecordChild2, // #1 = $Vn
/* 55226*/        OPC_CheckChild2Type, MVT::v16i8,
/* 55228*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55230*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55233*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55236*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1737:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 55246*/      /*SwitchType*/ 23, MVT::v1i64,// ->55271
/* 55248*/        OPC_CheckChild1Type, MVT::v1i64,
/* 55250*/        OPC_RecordChild2, // #1 = $Vn
/* 55251*/        OPC_CheckChild2Type, MVT::v1i64,
/* 55253*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55255*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55258*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55261*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1737:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 55271*/      /*SwitchType*/ 23, MVT::v2i64,// ->55296
/* 55273*/        OPC_CheckChild1Type, MVT::v2i64,
/* 55275*/        OPC_RecordChild2, // #1 = $Vn
/* 55276*/        OPC_CheckChild2Type, MVT::v2i64,
/* 55278*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55280*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55283*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55286*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1737:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 55296*/      0, // EndSwitchType
/* 55297*/    /*Scope*/ 78|128,1/*206*/, /*->55505*/
/* 55299*/      OPC_CheckChild0Integer, 75|128,13/*1739*/, 
/* 55302*/      OPC_RecordChild1, // #0 = $Vm
/* 55303*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->55329
/* 55306*/        OPC_CheckChild1Type, MVT::v4i16,
/* 55308*/        OPC_RecordChild2, // #1 = $Vn
/* 55309*/        OPC_CheckChild2Type, MVT::v4i16,
/* 55311*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55313*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55316*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55319*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1739:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 55329*/      /*SwitchType*/ 23, MVT::v2i32,// ->55354
/* 55331*/        OPC_CheckChild1Type, MVT::v2i32,
/* 55333*/        OPC_RecordChild2, // #1 = $Vn
/* 55334*/        OPC_CheckChild2Type, MVT::v2i32,
/* 55336*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55338*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55341*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55344*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1739:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 55354*/      /*SwitchType*/ 23, MVT::v8i16,// ->55379
/* 55356*/        OPC_CheckChild1Type, MVT::v8i16,
/* 55358*/        OPC_RecordChild2, // #1 = $Vn
/* 55359*/        OPC_CheckChild2Type, MVT::v8i16,
/* 55361*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55363*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55366*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55369*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1739:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 55379*/      /*SwitchType*/ 23, MVT::v4i32,// ->55404
/* 55381*/        OPC_CheckChild1Type, MVT::v4i32,
/* 55383*/        OPC_RecordChild2, // #1 = $Vn
/* 55384*/        OPC_CheckChild2Type, MVT::v4i32,
/* 55386*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55388*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55391*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55394*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1739:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 55404*/      /*SwitchType*/ 23, MVT::v8i8,// ->55429
/* 55406*/        OPC_CheckChild1Type, MVT::v8i8,
/* 55408*/        OPC_RecordChild2, // #1 = $Vn
/* 55409*/        OPC_CheckChild2Type, MVT::v8i8,
/* 55411*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55413*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55416*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55419*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1739:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 55429*/      /*SwitchType*/ 23, MVT::v16i8,// ->55454
/* 55431*/        OPC_CheckChild1Type, MVT::v16i8,
/* 55433*/        OPC_RecordChild2, // #1 = $Vn
/* 55434*/        OPC_CheckChild2Type, MVT::v16i8,
/* 55436*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55438*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55441*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55444*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1739:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 55454*/      /*SwitchType*/ 23, MVT::v1i64,// ->55479
/* 55456*/        OPC_CheckChild1Type, MVT::v1i64,
/* 55458*/        OPC_RecordChild2, // #1 = $Vn
/* 55459*/        OPC_CheckChild2Type, MVT::v1i64,
/* 55461*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55463*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55466*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55469*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1739:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 55479*/      /*SwitchType*/ 23, MVT::v2i64,// ->55504
/* 55481*/        OPC_CheckChild1Type, MVT::v2i64,
/* 55483*/        OPC_RecordChild2, // #1 = $Vn
/* 55484*/        OPC_CheckChild2Type, MVT::v2i64,
/* 55486*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55488*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55491*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55494*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1739:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VQSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 55504*/      0, // EndSwitchType
/* 55505*/    /*Scope*/ 78|128,1/*206*/, /*->55713*/
/* 55507*/      OPC_CheckChild0Integer, 68|128,13/*1732*/, 
/* 55510*/      OPC_RecordChild1, // #0 = $Vm
/* 55511*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->55537
/* 55514*/        OPC_CheckChild1Type, MVT::v4i16,
/* 55516*/        OPC_RecordChild2, // #1 = $Vn
/* 55517*/        OPC_CheckChild2Type, MVT::v4i16,
/* 55519*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55521*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55524*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55527*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1732:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 55537*/      /*SwitchType*/ 23, MVT::v2i32,// ->55562
/* 55539*/        OPC_CheckChild1Type, MVT::v2i32,
/* 55541*/        OPC_RecordChild2, // #1 = $Vn
/* 55542*/        OPC_CheckChild2Type, MVT::v2i32,
/* 55544*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55546*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55549*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55552*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1732:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 55562*/      /*SwitchType*/ 23, MVT::v8i16,// ->55587
/* 55564*/        OPC_CheckChild1Type, MVT::v8i16,
/* 55566*/        OPC_RecordChild2, // #1 = $Vn
/* 55567*/        OPC_CheckChild2Type, MVT::v8i16,
/* 55569*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55571*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55574*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55577*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1732:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 55587*/      /*SwitchType*/ 23, MVT::v4i32,// ->55612
/* 55589*/        OPC_CheckChild1Type, MVT::v4i32,
/* 55591*/        OPC_RecordChild2, // #1 = $Vn
/* 55592*/        OPC_CheckChild2Type, MVT::v4i32,
/* 55594*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55596*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55599*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55602*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1732:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 55612*/      /*SwitchType*/ 23, MVT::v8i8,// ->55637
/* 55614*/        OPC_CheckChild1Type, MVT::v8i8,
/* 55616*/        OPC_RecordChild2, // #1 = $Vn
/* 55617*/        OPC_CheckChild2Type, MVT::v8i8,
/* 55619*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55621*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55624*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55627*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1732:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 55637*/      /*SwitchType*/ 23, MVT::v16i8,// ->55662
/* 55639*/        OPC_CheckChild1Type, MVT::v16i8,
/* 55641*/        OPC_RecordChild2, // #1 = $Vn
/* 55642*/        OPC_CheckChild2Type, MVT::v16i8,
/* 55644*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55646*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55649*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55652*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1732:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 55662*/      /*SwitchType*/ 23, MVT::v1i64,// ->55687
/* 55664*/        OPC_CheckChild1Type, MVT::v1i64,
/* 55666*/        OPC_RecordChild2, // #1 = $Vn
/* 55667*/        OPC_CheckChild2Type, MVT::v1i64,
/* 55669*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55671*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55674*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55677*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1732:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 55687*/      /*SwitchType*/ 23, MVT::v2i64,// ->55712
/* 55689*/        OPC_CheckChild1Type, MVT::v2i64,
/* 55691*/        OPC_RecordChild2, // #1 = $Vn
/* 55692*/        OPC_CheckChild2Type, MVT::v2i64,
/* 55694*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55696*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55699*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55702*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLsv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1732:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 55712*/      0, // EndSwitchType
/* 55713*/    /*Scope*/ 78|128,1/*206*/, /*->55921*/
/* 55715*/      OPC_CheckChild0Integer, 69|128,13/*1733*/, 
/* 55718*/      OPC_RecordChild1, // #0 = $Vm
/* 55719*/      OPC_SwitchType /*8 cases */, 23, MVT::v4i16,// ->55745
/* 55722*/        OPC_CheckChild1Type, MVT::v4i16,
/* 55724*/        OPC_RecordChild2, // #1 = $Vn
/* 55725*/        OPC_CheckChild2Type, MVT::v4i16,
/* 55727*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55729*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55732*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55735*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1733:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, DPR:{ *:[v4i16] }:$Vn)
/* 55745*/      /*SwitchType*/ 23, MVT::v2i32,// ->55770
/* 55747*/        OPC_CheckChild1Type, MVT::v2i32,
/* 55749*/        OPC_RecordChild2, // #1 = $Vn
/* 55750*/        OPC_CheckChild2Type, MVT::v2i32,
/* 55752*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55754*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55757*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55760*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1733:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, DPR:{ *:[v2i32] }:$Vn)
/* 55770*/      /*SwitchType*/ 23, MVT::v8i16,// ->55795
/* 55772*/        OPC_CheckChild1Type, MVT::v8i16,
/* 55774*/        OPC_RecordChild2, // #1 = $Vn
/* 55775*/        OPC_CheckChild2Type, MVT::v8i16,
/* 55777*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55779*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55782*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55785*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1733:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, QPR:{ *:[v8i16] }:$Vn)
/* 55795*/      /*SwitchType*/ 23, MVT::v4i32,// ->55820
/* 55797*/        OPC_CheckChild1Type, MVT::v4i32,
/* 55799*/        OPC_RecordChild2, // #1 = $Vn
/* 55800*/        OPC_CheckChild2Type, MVT::v4i32,
/* 55802*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55804*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55807*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55810*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1733:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, QPR:{ *:[v4i32] }:$Vn)
/* 55820*/      /*SwitchType*/ 23, MVT::v8i8,// ->55845
/* 55822*/        OPC_CheckChild1Type, MVT::v8i8,
/* 55824*/        OPC_RecordChild2, // #1 = $Vn
/* 55825*/        OPC_CheckChild2Type, MVT::v8i8,
/* 55827*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55829*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55832*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55835*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1733:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, DPR:{ *:[v8i8] }:$Vn)
/* 55845*/      /*SwitchType*/ 23, MVT::v16i8,// ->55870
/* 55847*/        OPC_CheckChild1Type, MVT::v16i8,
/* 55849*/        OPC_RecordChild2, // #1 = $Vn
/* 55850*/        OPC_CheckChild2Type, MVT::v16i8,
/* 55852*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55854*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55857*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55860*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1733:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, QPR:{ *:[v16i8] }:$Vn)
/* 55870*/      /*SwitchType*/ 23, MVT::v1i64,// ->55895
/* 55872*/        OPC_CheckChild1Type, MVT::v1i64,
/* 55874*/        OPC_RecordChild2, // #1 = $Vn
/* 55875*/        OPC_CheckChild2Type, MVT::v1i64,
/* 55877*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55879*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55882*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55885*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v1i64] } 1733:{ *:[iPTR] }, DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, DPR:{ *:[v1i64] }:$Vn)
/* 55895*/      /*SwitchType*/ 23, MVT::v2i64,// ->55920
/* 55897*/        OPC_CheckChild1Type, MVT::v2i64,
/* 55899*/        OPC_RecordChild2, // #1 = $Vn
/* 55900*/        OPC_CheckChild2Type, MVT::v2i64,
/* 55902*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55904*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55907*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55910*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHLuv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1733:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn) - Complexity = 8
                  // Dst: (VQRSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, QPR:{ *:[v2i64] }:$Vn)
/* 55920*/      0, // EndSwitchType
/* 55921*/    /*Scope*/ 4|128,1/*132*/, /*->56055*/
/* 55923*/      OPC_CheckChild0Integer, 57|128,13/*1721*/, 
/* 55926*/      OPC_RecordChild1, // #0 = $Vm
/* 55927*/      OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->55949
/* 55930*/        OPC_CheckChild1Type, MVT::v8i8,
/* 55932*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55934*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55937*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55940*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQABSv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1721:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VQABSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 55949*/      /*SwitchType*/ 19, MVT::v4i16,// ->55970
/* 55951*/        OPC_CheckChild1Type, MVT::v4i16,
/* 55953*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55955*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55958*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55961*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQABSv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1721:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VQABSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 55970*/      /*SwitchType*/ 19, MVT::v2i32,// ->55991
/* 55972*/        OPC_CheckChild1Type, MVT::v2i32,
/* 55974*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55976*/        OPC_EmitInteger, MVT::i32, 14, 
/* 55979*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 55982*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQABSv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1721:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VQABSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 55991*/      /*SwitchType*/ 19, MVT::v16i8,// ->56012
/* 55993*/        OPC_CheckChild1Type, MVT::v16i8,
/* 55995*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 55997*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56000*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56003*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQABSv16i8), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1721:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VQABSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 56012*/      /*SwitchType*/ 19, MVT::v8i16,// ->56033
/* 56014*/        OPC_CheckChild1Type, MVT::v8i16,
/* 56016*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56018*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56021*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56024*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQABSv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1721:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VQABSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 56033*/      /*SwitchType*/ 19, MVT::v4i32,// ->56054
/* 56035*/        OPC_CheckChild1Type, MVT::v4i32,
/* 56037*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56039*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56042*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56045*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQABSv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1721:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VQABSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 56054*/      0, // EndSwitchType
/* 56055*/    /*Scope*/ 4|128,1/*132*/, /*->56189*/
/* 56057*/      OPC_CheckChild0Integer, 63|128,13/*1727*/, 
/* 56060*/      OPC_RecordChild1, // #0 = $Vm
/* 56061*/      OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->56083
/* 56064*/        OPC_CheckChild1Type, MVT::v8i8,
/* 56066*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56068*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56071*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56074*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQNEGv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1727:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VQNEGv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 56083*/      /*SwitchType*/ 19, MVT::v4i16,// ->56104
/* 56085*/        OPC_CheckChild1Type, MVT::v4i16,
/* 56087*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56089*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56092*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56095*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQNEGv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1727:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VQNEGv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 56104*/      /*SwitchType*/ 19, MVT::v2i32,// ->56125
/* 56106*/        OPC_CheckChild1Type, MVT::v2i32,
/* 56108*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56110*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56113*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56116*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQNEGv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1727:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VQNEGv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 56125*/      /*SwitchType*/ 19, MVT::v16i8,// ->56146
/* 56127*/        OPC_CheckChild1Type, MVT::v16i8,
/* 56129*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56131*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56134*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56137*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQNEGv16i8), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1727:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VQNEGv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 56146*/      /*SwitchType*/ 19, MVT::v8i16,// ->56167
/* 56148*/        OPC_CheckChild1Type, MVT::v8i16,
/* 56150*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56152*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56155*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56158*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQNEGv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1727:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VQNEGv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 56167*/      /*SwitchType*/ 19, MVT::v4i32,// ->56188
/* 56169*/        OPC_CheckChild1Type, MVT::v4i32,
/* 56171*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56173*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56176*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56179*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQNEGv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1727:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VQNEGv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 56188*/      0, // EndSwitchType
/* 56189*/    /*Scope*/ 4|128,1/*132*/, /*->56323*/
/* 56191*/      OPC_CheckChild0Integer, 6|128,13/*1670*/, 
/* 56194*/      OPC_RecordChild1, // #0 = $Vm
/* 56195*/      OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->56217
/* 56198*/        OPC_CheckChild1Type, MVT::v8i8,
/* 56200*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56202*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56205*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56208*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLSv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1670:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                  // Dst: (VCLSv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 56217*/      /*SwitchType*/ 19, MVT::v4i16,// ->56238
/* 56219*/        OPC_CheckChild1Type, MVT::v4i16,
/* 56221*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56223*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56226*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56229*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLSv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1670:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                  // Dst: (VCLSv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 56238*/      /*SwitchType*/ 19, MVT::v2i32,// ->56259
/* 56240*/        OPC_CheckChild1Type, MVT::v2i32,
/* 56242*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56244*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56247*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56250*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLSv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1670:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm) - Complexity = 8
                  // Dst: (VCLSv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 56259*/      /*SwitchType*/ 19, MVT::v16i8,// ->56280
/* 56261*/        OPC_CheckChild1Type, MVT::v16i8,
/* 56263*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56265*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56268*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56271*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLSv16i8), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1670:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                  // Dst: (VCLSv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 56280*/      /*SwitchType*/ 19, MVT::v8i16,// ->56301
/* 56282*/        OPC_CheckChild1Type, MVT::v8i16,
/* 56284*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56286*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56289*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56292*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLSv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1670:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VCLSv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 56301*/      /*SwitchType*/ 19, MVT::v4i32,// ->56322
/* 56303*/        OPC_CheckChild1Type, MVT::v4i32,
/* 56305*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56307*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56310*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56313*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLSv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1670:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VCLSv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 56322*/      0, // EndSwitchType
/* 56323*/    /*Scope*/ 69, /*->56393*/
/* 56324*/      OPC_CheckChild0Integer, 60|128,13/*1724*/, 
/* 56327*/      OPC_RecordChild1, // #0 = $Vm
/* 56328*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i8,// ->56350
/* 56331*/        OPC_CheckChild1Type, MVT::v8i16,
/* 56333*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56335*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56338*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56341*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNsv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1724:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNsv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
/* 56350*/      /*SwitchType*/ 19, MVT::v4i16,// ->56371
/* 56352*/        OPC_CheckChild1Type, MVT::v4i32,
/* 56354*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56356*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56359*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56362*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNsv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1724:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNsv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
/* 56371*/      /*SwitchType*/ 19, MVT::v2i32,// ->56392
/* 56373*/        OPC_CheckChild1Type, MVT::v2i64,
/* 56375*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56377*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56380*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56383*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNsv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1724:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNsv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
/* 56392*/      0, // EndSwitchType
/* 56393*/    /*Scope*/ 69, /*->56463*/
/* 56394*/      OPC_CheckChild0Integer, 62|128,13/*1726*/, 
/* 56397*/      OPC_RecordChild1, // #0 = $Vm
/* 56398*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i8,// ->56420
/* 56401*/        OPC_CheckChild1Type, MVT::v8i16,
/* 56403*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56405*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56408*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56411*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNuv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1726:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNuv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
/* 56420*/      /*SwitchType*/ 19, MVT::v4i16,// ->56441
/* 56422*/        OPC_CheckChild1Type, MVT::v4i32,
/* 56424*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56426*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56429*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56432*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNuv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1726:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNuv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
/* 56441*/      /*SwitchType*/ 19, MVT::v2i32,// ->56462
/* 56443*/        OPC_CheckChild1Type, MVT::v2i64,
/* 56445*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56447*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56450*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56453*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNuv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1726:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNuv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
/* 56462*/      0, // EndSwitchType
/* 56463*/    /*Scope*/ 69, /*->56533*/
/* 56464*/      OPC_CheckChild0Integer, 61|128,13/*1725*/, 
/* 56467*/      OPC_RecordChild1, // #0 = $Vm
/* 56468*/      OPC_SwitchType /*3 cases */, 19, MVT::v8i8,// ->56490
/* 56471*/        OPC_CheckChild1Type, MVT::v8i16,
/* 56473*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56475*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56478*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56481*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNsuv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1725:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNsuv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm)
/* 56490*/      /*SwitchType*/ 19, MVT::v4i16,// ->56511
/* 56492*/        OPC_CheckChild1Type, MVT::v4i32,
/* 56494*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56496*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56499*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56502*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNsuv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1725:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNsuv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm)
/* 56511*/      /*SwitchType*/ 19, MVT::v2i32,// ->56532
/* 56513*/        OPC_CheckChild1Type, MVT::v2i64,
/* 56515*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 56517*/        OPC_EmitInteger, MVT::i32, 14, 
/* 56520*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 56523*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQMOVNsuv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1725:{ *:[iPTR] }, QPR:{ *:[v2i64] }:$Vm) - Complexity = 8
                  // Dst: (VQMOVNsuv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm)
/* 56532*/      0, // EndSwitchType
/* 56533*/    /*Scope*/ 58, /*->56592*/
/* 56534*/      OPC_CheckChild0Integer, 7|128,13/*1671*/, 
/* 56537*/      OPC_RecordChild1, // #0 = $Vm
/* 56538*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->56552
/* 56541*/        OPC_CheckChild1Type, MVT::v2f32,
/* 56543*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56545*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANSDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1671:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 56552*/      /*SwitchType*/ 11, MVT::v4i32,// ->56565
/* 56554*/        OPC_CheckChild1Type, MVT::v4f32,
/* 56556*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56558*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANSQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1671:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 56565*/      /*SwitchType*/ 11, MVT::v4i16,// ->56578
/* 56567*/        OPC_CheckChild1Type, MVT::v4f16,
/* 56569*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56571*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANSDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1671:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 56578*/      /*SwitchType*/ 11, MVT::v8i16,// ->56591
/* 56580*/        OPC_CheckChild1Type, MVT::v8f16,
/* 56582*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56584*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANSQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1671:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 56591*/      0, // EndSwitchType
/* 56592*/    /*Scope*/ 58, /*->56651*/
/* 56593*/      OPC_CheckChild0Integer, 8|128,13/*1672*/, 
/* 56596*/      OPC_RecordChild1, // #0 = $Vm
/* 56597*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->56611
/* 56600*/        OPC_CheckChild1Type, MVT::v2f32,
/* 56602*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56604*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANUDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1672:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 56611*/      /*SwitchType*/ 11, MVT::v4i32,// ->56624
/* 56613*/        OPC_CheckChild1Type, MVT::v4f32,
/* 56615*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56617*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANUQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1672:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 56624*/      /*SwitchType*/ 11, MVT::v4i16,// ->56637
/* 56626*/        OPC_CheckChild1Type, MVT::v4f16,
/* 56628*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56630*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANUDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1672:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 56637*/      /*SwitchType*/ 11, MVT::v8i16,// ->56650
/* 56639*/        OPC_CheckChild1Type, MVT::v8f16,
/* 56641*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56643*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTANUQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1672:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTANUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 56650*/      0, // EndSwitchType
/* 56651*/    /*Scope*/ 58, /*->56710*/
/* 56652*/      OPC_CheckChild0Integer, 17|128,13/*1681*/, 
/* 56655*/      OPC_RecordChild1, // #0 = $Vm
/* 56656*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->56670
/* 56659*/        OPC_CheckChild1Type, MVT::v2f32,
/* 56661*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56663*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNSDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1681:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 56670*/      /*SwitchType*/ 11, MVT::v4i32,// ->56683
/* 56672*/        OPC_CheckChild1Type, MVT::v4f32,
/* 56674*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56676*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNSQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1681:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 56683*/      /*SwitchType*/ 11, MVT::v4i16,// ->56696
/* 56685*/        OPC_CheckChild1Type, MVT::v4f16,
/* 56687*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56689*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNSDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1681:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 56696*/      /*SwitchType*/ 11, MVT::v8i16,// ->56709
/* 56698*/        OPC_CheckChild1Type, MVT::v8f16,
/* 56700*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56702*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNSQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1681:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 56709*/      0, // EndSwitchType
/* 56710*/    /*Scope*/ 58, /*->56769*/
/* 56711*/      OPC_CheckChild0Integer, 18|128,13/*1682*/, 
/* 56714*/      OPC_RecordChild1, // #0 = $Vm
/* 56715*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->56729
/* 56718*/        OPC_CheckChild1Type, MVT::v2f32,
/* 56720*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56722*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNUDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1682:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 56729*/      /*SwitchType*/ 11, MVT::v4i32,// ->56742
/* 56731*/        OPC_CheckChild1Type, MVT::v4f32,
/* 56733*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56735*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNUQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1682:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 56742*/      /*SwitchType*/ 11, MVT::v4i16,// ->56755
/* 56744*/        OPC_CheckChild1Type, MVT::v4f16,
/* 56746*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56748*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNUDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1682:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 56755*/      /*SwitchType*/ 11, MVT::v8i16,// ->56768
/* 56757*/        OPC_CheckChild1Type, MVT::v8f16,
/* 56759*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56761*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTNNUQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1682:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTNNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 56768*/      0, // EndSwitchType
/* 56769*/    /*Scope*/ 58, /*->56828*/
/* 56770*/      OPC_CheckChild0Integer, 19|128,13/*1683*/, 
/* 56773*/      OPC_RecordChild1, // #0 = $Vm
/* 56774*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->56788
/* 56777*/        OPC_CheckChild1Type, MVT::v2f32,
/* 56779*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56781*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNSDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1683:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 56788*/      /*SwitchType*/ 11, MVT::v4i32,// ->56801
/* 56790*/        OPC_CheckChild1Type, MVT::v4f32,
/* 56792*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56794*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNSQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1683:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 56801*/      /*SwitchType*/ 11, MVT::v4i16,// ->56814
/* 56803*/        OPC_CheckChild1Type, MVT::v4f16,
/* 56805*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56807*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNSDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1683:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 56814*/      /*SwitchType*/ 11, MVT::v8i16,// ->56827
/* 56816*/        OPC_CheckChild1Type, MVT::v8f16,
/* 56818*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56820*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNSQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1683:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 56827*/      0, // EndSwitchType
/* 56828*/    /*Scope*/ 58, /*->56887*/
/* 56829*/      OPC_CheckChild0Integer, 20|128,13/*1684*/, 
/* 56832*/      OPC_RecordChild1, // #0 = $Vm
/* 56833*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->56847
/* 56836*/        OPC_CheckChild1Type, MVT::v2f32,
/* 56838*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56840*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNUDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1684:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 56847*/      /*SwitchType*/ 11, MVT::v4i32,// ->56860
/* 56849*/        OPC_CheckChild1Type, MVT::v4f32,
/* 56851*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56853*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNUQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1684:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 56860*/      /*SwitchType*/ 11, MVT::v4i16,// ->56873
/* 56862*/        OPC_CheckChild1Type, MVT::v4f16,
/* 56864*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56866*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNUDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1684:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 56873*/      /*SwitchType*/ 11, MVT::v8i16,// ->56886
/* 56875*/        OPC_CheckChild1Type, MVT::v8f16,
/* 56877*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56879*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTPNUQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1684:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTPNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 56886*/      0, // EndSwitchType
/* 56887*/    /*Scope*/ 58, /*->56946*/
/* 56888*/      OPC_CheckChild0Integer, 15|128,13/*1679*/, 
/* 56891*/      OPC_RecordChild1, // #0 = $Vm
/* 56892*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->56906
/* 56895*/        OPC_CheckChild1Type, MVT::v2f32,
/* 56897*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56899*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNSDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1679:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNSDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 56906*/      /*SwitchType*/ 11, MVT::v4i32,// ->56919
/* 56908*/        OPC_CheckChild1Type, MVT::v4f32,
/* 56910*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56912*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNSQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1679:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNSQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 56919*/      /*SwitchType*/ 11, MVT::v4i16,// ->56932
/* 56921*/        OPC_CheckChild1Type, MVT::v4f16,
/* 56923*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56925*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNSDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1679:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNSDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 56932*/      /*SwitchType*/ 11, MVT::v8i16,// ->56945
/* 56934*/        OPC_CheckChild1Type, MVT::v8f16,
/* 56936*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56938*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNSQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1679:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNSQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 56945*/      0, // EndSwitchType
/* 56946*/    /*Scope*/ 58, /*->57005*/
/* 56947*/      OPC_CheckChild0Integer, 16|128,13/*1680*/, 
/* 56950*/      OPC_RecordChild1, // #0 = $Vm
/* 56951*/      OPC_SwitchType /*4 cases */, 11, MVT::v2i32,// ->56965
/* 56954*/        OPC_CheckChild1Type, MVT::v2f32,
/* 56956*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56958*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNUDf), 0,
                      MVT::v2i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i32] } 1680:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNUDf:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/* 56965*/      /*SwitchType*/ 11, MVT::v4i32,// ->56978
/* 56967*/        OPC_CheckChild1Type, MVT::v4f32,
/* 56969*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56971*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNUQf), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1680:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNUQf:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/* 56978*/      /*SwitchType*/ 11, MVT::v4i16,// ->56991
/* 56980*/        OPC_CheckChild1Type, MVT::v4f16,
/* 56982*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56984*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNUDh), 0,
                      MVT::v4i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1680:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNUDh:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/* 56991*/      /*SwitchType*/ 11, MVT::v8i16,// ->57004
/* 56993*/        OPC_CheckChild1Type, MVT::v8f16,
/* 56995*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 56997*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTMNUQh), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1680:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VCVTMNUQh:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/* 57004*/      0, // EndSwitchType
/* 57005*/    /*Scope*/ 21, /*->57027*/
/* 57006*/      OPC_CheckChild0Integer, 11|128,13/*1675*/, 
/* 57009*/      OPC_RecordChild1, // #0 = $Vm
/* 57010*/      OPC_CheckPatternPredicate, 33, // (Subtarget->hasFP16()) && (Subtarget->hasNEON())
/* 57012*/      OPC_EmitInteger, MVT::i32, 14, 
/* 57015*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57018*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTf2h), 0,
                    MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i16] } 1675:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                // Dst: (VCVTf2h:{ *:[v4i16] } QPR:{ *:[v4f32] }:$Vm)
/* 57027*/    /*Scope*/ 25, /*->57053*/
/* 57028*/      OPC_CheckChild0Integer, 110|128,13/*1774*/, 
/* 57031*/      OPC_RecordChild1, // #0 = $orig
/* 57032*/      OPC_RecordChild2, // #1 = $Vn
/* 57033*/      OPC_RecordChild3, // #2 = $Vm
/* 57034*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 57036*/      OPC_EmitInteger, MVT::i32, 14, 
/* 57039*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 57042*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTBX1), 0,
                    MVT::v8i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1774:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$orig, VecListOneD:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 8
                // Dst: (VTBX1:{ *:[v8i8] } DPR:{ *:[v8i8] }:$orig, VecListOneD:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 57053*/    /*Scope*/ 15, /*->57069*/
/* 57054*/      OPC_CheckChild0Integer, 110|128,12/*1646*/, 
/* 57057*/      OPC_RecordChild1, // #0 = $src
/* 57058*/      OPC_RecordChild2, // #1 = $Vm
/* 57059*/      OPC_CheckPatternPredicate, 32, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 57061*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::AESD), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1646:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                // Dst: (AESD:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm)
/* 57069*/    /*Scope*/ 15, /*->57085*/
/* 57070*/      OPC_CheckChild0Integer, 111|128,12/*1647*/, 
/* 57073*/      OPC_RecordChild1, // #0 = $src
/* 57074*/      OPC_RecordChild2, // #1 = $Vm
/* 57075*/      OPC_CheckPatternPredicate, 32, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 57077*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::AESE), 0,
                    MVT::v16i8, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1647:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                // Dst: (AESE:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src, QPR:{ *:[v16i8] }:$Vm)
/* 57085*/    /*Scope*/ 13, /*->57099*/
/* 57086*/      OPC_CheckChild0Integer, 112|128,12/*1648*/, 
/* 57089*/      OPC_RecordChild1, // #0 = $Vm
/* 57090*/      OPC_CheckPatternPredicate, 32, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 57092*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::AESIMC), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1648:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                // Dst: (AESIMC:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 57099*/    /*Scope*/ 13, /*->57113*/
/* 57100*/      OPC_CheckChild0Integer, 113|128,12/*1649*/, 
/* 57103*/      OPC_RecordChild1, // #0 = $Vm
/* 57104*/      OPC_CheckPatternPredicate, 32, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 57106*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::AESMC), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1649:{ *:[iPTR] }, QPR:{ *:[v16i8] }:$Vm) - Complexity = 8
                // Dst: (AESMC:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 57113*/    /*Scope*/ 15, /*->57129*/
/* 57114*/      OPC_CheckChild0Integer, 120|128,12/*1656*/, 
/* 57117*/      OPC_RecordChild1, // #0 = $src
/* 57118*/      OPC_RecordChild2, // #1 = $Vm
/* 57119*/      OPC_CheckPatternPredicate, 32, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 57121*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA1SU1), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1656:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                // Dst: (SHA1SU1:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm)
/* 57129*/    /*Scope*/ 15, /*->57145*/
/* 57130*/      OPC_CheckChild0Integer, 123|128,12/*1659*/, 
/* 57133*/      OPC_RecordChild1, // #0 = $src
/* 57134*/      OPC_RecordChild2, // #1 = $Vm
/* 57135*/      OPC_CheckPatternPredicate, 32, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 57137*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA256SU0), 0,
                    MVT::v4i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1659:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                // Dst: (SHA256SU0:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vm)
/* 57145*/    /*Scope*/ 17, /*->57163*/
/* 57146*/      OPC_CheckChild0Integer, 119|128,12/*1655*/, 
/* 57149*/      OPC_RecordChild1, // #0 = $src
/* 57150*/      OPC_RecordChild2, // #1 = $Vn
/* 57151*/      OPC_RecordChild3, // #2 = $Vm
/* 57152*/      OPC_CheckPatternPredicate, 32, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 57154*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA1SU0), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1655:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                // Dst: (SHA1SU0:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 57163*/    /*Scope*/ 17, /*->57181*/
/* 57164*/      OPC_CheckChild0Integer, 121|128,12/*1657*/, 
/* 57167*/      OPC_RecordChild1, // #0 = $src
/* 57168*/      OPC_RecordChild2, // #1 = $Vn
/* 57169*/      OPC_RecordChild3, // #2 = $Vm
/* 57170*/      OPC_CheckPatternPredicate, 32, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 57172*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA256H), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1657:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                // Dst: (SHA256H:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 57181*/    /*Scope*/ 17, /*->57199*/
/* 57182*/      OPC_CheckChild0Integer, 122|128,12/*1658*/, 
/* 57185*/      OPC_RecordChild1, // #0 = $src
/* 57186*/      OPC_RecordChild2, // #1 = $Vn
/* 57187*/      OPC_RecordChild3, // #2 = $Vm
/* 57188*/      OPC_CheckPatternPredicate, 32, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 57190*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA256H2), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1658:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                // Dst: (SHA256H2:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 57199*/    /*Scope*/ 17, /*->57217*/
/* 57200*/      OPC_CheckChild0Integer, 124|128,12/*1660*/, 
/* 57203*/      OPC_RecordChild1, // #0 = $src
/* 57204*/      OPC_RecordChild2, // #1 = $Vn
/* 57205*/      OPC_RecordChild3, // #2 = $Vm
/* 57206*/      OPC_CheckPatternPredicate, 32, // (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops())
/* 57208*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA256SU1), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1660:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 8
                // Dst: (SHA256SU1:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 57217*/    /*Scope*/ 122, /*->57340*/
/* 57218*/      OPC_CheckChild0Integer, 2|128,12/*1538*/, 
/* 57221*/      OPC_RecordChild1, // #0 = $Qm
/* 57222*/      OPC_SwitchType /*4 cases */, 27, MVT::v16i8,// ->57252
/* 57225*/        OPC_CheckChild1Type, MVT::v16i8,
/* 57227*/        OPC_RecordChild2, // #1 = $Qn
/* 57228*/        OPC_CheckChild2Type, MVT::v16i8,
/* 57230*/        OPC_RecordChild3, // #2 = $mask
/* 57231*/        OPC_CheckChild3Type, MVT::v16i1,
/* 57233*/        OPC_RecordChild4, // #3 = $inactive
/* 57234*/        OPC_CheckChild4Type, MVT::v16i8,
/* 57236*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57238*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57241*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VAND), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1538:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VAND:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 57252*/      /*SwitchType*/ 27, MVT::v8i16,// ->57281
/* 57254*/        OPC_CheckChild1Type, MVT::v8i16,
/* 57256*/        OPC_RecordChild2, // #1 = $Qn
/* 57257*/        OPC_CheckChild2Type, MVT::v8i16,
/* 57259*/        OPC_RecordChild3, // #2 = $mask
/* 57260*/        OPC_CheckChild3Type, MVT::v8i1,
/* 57262*/        OPC_RecordChild4, // #3 = $inactive
/* 57263*/        OPC_CheckChild4Type, MVT::v8i16,
/* 57265*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57267*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57270*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VAND), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1538:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VAND:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 57281*/      /*SwitchType*/ 27, MVT::v4i32,// ->57310
/* 57283*/        OPC_CheckChild1Type, MVT::v4i32,
/* 57285*/        OPC_RecordChild2, // #1 = $Qn
/* 57286*/        OPC_CheckChild2Type, MVT::v4i32,
/* 57288*/        OPC_RecordChild3, // #2 = $mask
/* 57289*/        OPC_CheckChild3Type, MVT::v4i1,
/* 57291*/        OPC_RecordChild4, // #3 = $inactive
/* 57292*/        OPC_CheckChild4Type, MVT::v4i32,
/* 57294*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57296*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57299*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VAND), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1538:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VAND:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 57310*/      /*SwitchType*/ 27, MVT::v2i64,// ->57339
/* 57312*/        OPC_CheckChild1Type, MVT::v2i64,
/* 57314*/        OPC_RecordChild2, // #1 = $Qn
/* 57315*/        OPC_CheckChild2Type, MVT::v2i64,
/* 57317*/        OPC_RecordChild3, // #2 = $mask
/* 57318*/        OPC_CheckChild3Type, MVT::v4i1,
/* 57320*/        OPC_RecordChild4, // #3 = $inactive
/* 57321*/        OPC_CheckChild4Type, MVT::v2i64,
/* 57323*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57325*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57328*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VAND), 0,
                      MVT::v2i64, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1538:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VAND:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive)
/* 57339*/      0, // EndSwitchType
/* 57340*/    /*Scope*/ 122, /*->57463*/
/* 57341*/      OPC_CheckChild0Integer, 20|128,12/*1556*/, 
/* 57344*/      OPC_RecordChild1, // #0 = $Qm
/* 57345*/      OPC_SwitchType /*4 cases */, 27, MVT::v16i8,// ->57375
/* 57348*/        OPC_CheckChild1Type, MVT::v16i8,
/* 57350*/        OPC_RecordChild2, // #1 = $Qn
/* 57351*/        OPC_CheckChild2Type, MVT::v16i8,
/* 57353*/        OPC_RecordChild3, // #2 = $mask
/* 57354*/        OPC_CheckChild3Type, MVT::v16i1,
/* 57356*/        OPC_RecordChild4, // #3 = $inactive
/* 57357*/        OPC_CheckChild4Type, MVT::v16i8,
/* 57359*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57361*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57364*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORR), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1556:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VORR:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 57375*/      /*SwitchType*/ 27, MVT::v8i16,// ->57404
/* 57377*/        OPC_CheckChild1Type, MVT::v8i16,
/* 57379*/        OPC_RecordChild2, // #1 = $Qn
/* 57380*/        OPC_CheckChild2Type, MVT::v8i16,
/* 57382*/        OPC_RecordChild3, // #2 = $mask
/* 57383*/        OPC_CheckChild3Type, MVT::v8i1,
/* 57385*/        OPC_RecordChild4, // #3 = $inactive
/* 57386*/        OPC_CheckChild4Type, MVT::v8i16,
/* 57388*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57390*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57393*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORR), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1556:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VORR:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 57404*/      /*SwitchType*/ 27, MVT::v4i32,// ->57433
/* 57406*/        OPC_CheckChild1Type, MVT::v4i32,
/* 57408*/        OPC_RecordChild2, // #1 = $Qn
/* 57409*/        OPC_CheckChild2Type, MVT::v4i32,
/* 57411*/        OPC_RecordChild3, // #2 = $mask
/* 57412*/        OPC_CheckChild3Type, MVT::v4i1,
/* 57414*/        OPC_RecordChild4, // #3 = $inactive
/* 57415*/        OPC_CheckChild4Type, MVT::v4i32,
/* 57417*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57419*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57422*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORR), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1556:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VORR:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 57433*/      /*SwitchType*/ 27, MVT::v2i64,// ->57462
/* 57435*/        OPC_CheckChild1Type, MVT::v2i64,
/* 57437*/        OPC_RecordChild2, // #1 = $Qn
/* 57438*/        OPC_CheckChild2Type, MVT::v2i64,
/* 57440*/        OPC_RecordChild3, // #2 = $mask
/* 57441*/        OPC_CheckChild3Type, MVT::v4i1,
/* 57443*/        OPC_RecordChild4, // #3 = $inactive
/* 57444*/        OPC_CheckChild4Type, MVT::v2i64,
/* 57446*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57448*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57451*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORR), 0,
                      MVT::v2i64, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1556:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VORR:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive)
/* 57462*/      0, // EndSwitchType
/* 57463*/    /*Scope*/ 122, /*->57586*/
/* 57464*/      OPC_CheckChild0Integer, 5|128,12/*1541*/, 
/* 57467*/      OPC_RecordChild1, // #0 = $Qm
/* 57468*/      OPC_SwitchType /*4 cases */, 27, MVT::v16i8,// ->57498
/* 57471*/        OPC_CheckChild1Type, MVT::v16i8,
/* 57473*/        OPC_RecordChild2, // #1 = $Qn
/* 57474*/        OPC_CheckChild2Type, MVT::v16i8,
/* 57476*/        OPC_RecordChild3, // #2 = $mask
/* 57477*/        OPC_CheckChild3Type, MVT::v16i1,
/* 57479*/        OPC_RecordChild4, // #3 = $inactive
/* 57480*/        OPC_CheckChild4Type, MVT::v16i8,
/* 57482*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57484*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57487*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VEOR), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1541:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VEOR:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 57498*/      /*SwitchType*/ 27, MVT::v8i16,// ->57527
/* 57500*/        OPC_CheckChild1Type, MVT::v8i16,
/* 57502*/        OPC_RecordChild2, // #1 = $Qn
/* 57503*/        OPC_CheckChild2Type, MVT::v8i16,
/* 57505*/        OPC_RecordChild3, // #2 = $mask
/* 57506*/        OPC_CheckChild3Type, MVT::v8i1,
/* 57508*/        OPC_RecordChild4, // #3 = $inactive
/* 57509*/        OPC_CheckChild4Type, MVT::v8i16,
/* 57511*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57513*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57516*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VEOR), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1541:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VEOR:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 57527*/      /*SwitchType*/ 27, MVT::v4i32,// ->57556
/* 57529*/        OPC_CheckChild1Type, MVT::v4i32,
/* 57531*/        OPC_RecordChild2, // #1 = $Qn
/* 57532*/        OPC_CheckChild2Type, MVT::v4i32,
/* 57534*/        OPC_RecordChild3, // #2 = $mask
/* 57535*/        OPC_CheckChild3Type, MVT::v4i1,
/* 57537*/        OPC_RecordChild4, // #3 = $inactive
/* 57538*/        OPC_CheckChild4Type, MVT::v4i32,
/* 57540*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57542*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57545*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VEOR), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1541:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VEOR:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 57556*/      /*SwitchType*/ 27, MVT::v2i64,// ->57585
/* 57558*/        OPC_CheckChild1Type, MVT::v2i64,
/* 57560*/        OPC_RecordChild2, // #1 = $Qn
/* 57561*/        OPC_CheckChild2Type, MVT::v2i64,
/* 57563*/        OPC_RecordChild3, // #2 = $mask
/* 57564*/        OPC_CheckChild3Type, MVT::v4i1,
/* 57566*/        OPC_RecordChild4, // #3 = $inactive
/* 57567*/        OPC_CheckChild4Type, MVT::v2i64,
/* 57569*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57571*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57574*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VEOR), 0,
                      MVT::v2i64, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1541:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VEOR:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive)
/* 57585*/      0, // EndSwitchType
/* 57586*/    /*Scope*/ 122, /*->57709*/
/* 57587*/      OPC_CheckChild0Integer, 4|128,12/*1540*/, 
/* 57590*/      OPC_RecordChild1, // #0 = $Qm
/* 57591*/      OPC_SwitchType /*4 cases */, 27, MVT::v16i8,// ->57621
/* 57594*/        OPC_CheckChild1Type, MVT::v16i8,
/* 57596*/        OPC_RecordChild2, // #1 = $Qn
/* 57597*/        OPC_CheckChild2Type, MVT::v16i8,
/* 57599*/        OPC_RecordChild3, // #2 = $mask
/* 57600*/        OPC_CheckChild3Type, MVT::v16i1,
/* 57602*/        OPC_RecordChild4, // #3 = $inactive
/* 57603*/        OPC_CheckChild4Type, MVT::v16i8,
/* 57605*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57607*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57610*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1540:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VBIC:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 57621*/      /*SwitchType*/ 27, MVT::v8i16,// ->57650
/* 57623*/        OPC_CheckChild1Type, MVT::v8i16,
/* 57625*/        OPC_RecordChild2, // #1 = $Qn
/* 57626*/        OPC_CheckChild2Type, MVT::v8i16,
/* 57628*/        OPC_RecordChild3, // #2 = $mask
/* 57629*/        OPC_CheckChild3Type, MVT::v8i1,
/* 57631*/        OPC_RecordChild4, // #3 = $inactive
/* 57632*/        OPC_CheckChild4Type, MVT::v8i16,
/* 57634*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57636*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57639*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1540:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VBIC:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 57650*/      /*SwitchType*/ 27, MVT::v4i32,// ->57679
/* 57652*/        OPC_CheckChild1Type, MVT::v4i32,
/* 57654*/        OPC_RecordChild2, // #1 = $Qn
/* 57655*/        OPC_CheckChild2Type, MVT::v4i32,
/* 57657*/        OPC_RecordChild3, // #2 = $mask
/* 57658*/        OPC_CheckChild3Type, MVT::v4i1,
/* 57660*/        OPC_RecordChild4, // #3 = $inactive
/* 57661*/        OPC_CheckChild4Type, MVT::v4i32,
/* 57663*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57665*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57668*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1540:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VBIC:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 57679*/      /*SwitchType*/ 27, MVT::v2i64,// ->57708
/* 57681*/        OPC_CheckChild1Type, MVT::v2i64,
/* 57683*/        OPC_RecordChild2, // #1 = $Qn
/* 57684*/        OPC_CheckChild2Type, MVT::v2i64,
/* 57686*/        OPC_RecordChild3, // #2 = $mask
/* 57687*/        OPC_CheckChild3Type, MVT::v4i1,
/* 57689*/        OPC_RecordChild4, // #3 = $inactive
/* 57690*/        OPC_CheckChild4Type, MVT::v2i64,
/* 57692*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57694*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57697*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBIC), 0,
                      MVT::v2i64, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1540:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VBIC:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive)
/* 57708*/      0, // EndSwitchType
/* 57709*/    /*Scope*/ 122, /*->57832*/
/* 57710*/      OPC_CheckChild0Integer, 19|128,12/*1555*/, 
/* 57713*/      OPC_RecordChild1, // #0 = $Qm
/* 57714*/      OPC_SwitchType /*4 cases */, 27, MVT::v16i8,// ->57744
/* 57717*/        OPC_CheckChild1Type, MVT::v16i8,
/* 57719*/        OPC_RecordChild2, // #1 = $Qn
/* 57720*/        OPC_CheckChild2Type, MVT::v16i8,
/* 57722*/        OPC_RecordChild3, // #2 = $mask
/* 57723*/        OPC_CheckChild3Type, MVT::v16i1,
/* 57725*/        OPC_RecordChild4, // #3 = $inactive
/* 57726*/        OPC_CheckChild4Type, MVT::v16i8,
/* 57728*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57730*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57733*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1555:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VORN:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 57744*/      /*SwitchType*/ 27, MVT::v8i16,// ->57773
/* 57746*/        OPC_CheckChild1Type, MVT::v8i16,
/* 57748*/        OPC_RecordChild2, // #1 = $Qn
/* 57749*/        OPC_CheckChild2Type, MVT::v8i16,
/* 57751*/        OPC_RecordChild3, // #2 = $mask
/* 57752*/        OPC_CheckChild3Type, MVT::v8i1,
/* 57754*/        OPC_RecordChild4, // #3 = $inactive
/* 57755*/        OPC_CheckChild4Type, MVT::v8i16,
/* 57757*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57759*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57762*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1555:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VORN:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 57773*/      /*SwitchType*/ 27, MVT::v4i32,// ->57802
/* 57775*/        OPC_CheckChild1Type, MVT::v4i32,
/* 57777*/        OPC_RecordChild2, // #1 = $Qn
/* 57778*/        OPC_CheckChild2Type, MVT::v4i32,
/* 57780*/        OPC_RecordChild3, // #2 = $mask
/* 57781*/        OPC_CheckChild3Type, MVT::v4i1,
/* 57783*/        OPC_RecordChild4, // #3 = $inactive
/* 57784*/        OPC_CheckChild4Type, MVT::v4i32,
/* 57786*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57788*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57791*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1555:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VORN:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 57802*/      /*SwitchType*/ 27, MVT::v2i64,// ->57831
/* 57804*/        OPC_CheckChild1Type, MVT::v2i64,
/* 57806*/        OPC_RecordChild2, // #1 = $Qn
/* 57807*/        OPC_CheckChild2Type, MVT::v2i64,
/* 57809*/        OPC_RecordChild3, // #2 = $mask
/* 57810*/        OPC_CheckChild3Type, MVT::v4i1,
/* 57812*/        OPC_RecordChild4, // #3 = $inactive
/* 57813*/        OPC_CheckChild4Type, MVT::v2i64,
/* 57815*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57817*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57820*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VORN), 0,
                      MVT::v2i64, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 1555:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VORN:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v2i64] }:$inactive)
/* 57831*/      0, // EndSwitchType
/* 57832*/    /*Scope*/ 23|128,1/*151*/, /*->57985*/
/* 57834*/      OPC_CheckChild0Integer, 15|128,12/*1551*/, 
/* 57837*/      OPC_RecordChild1, // #0 = $Qm
/* 57838*/      OPC_SwitchType /*5 cases */, 27, MVT::v16i8,// ->57868
/* 57841*/        OPC_CheckChild1Type, MVT::v16i8,
/* 57843*/        OPC_RecordChild2, // #1 = $Qn
/* 57844*/        OPC_CheckChild2Type, MVT::v16i8,
/* 57846*/        OPC_RecordChild3, // #2 = $mask
/* 57847*/        OPC_CheckChild3Type, MVT::v16i1,
/* 57849*/        OPC_RecordChild4, // #3 = $inactive
/* 57850*/        OPC_CheckChild4Type, MVT::v16i8,
/* 57852*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57854*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57857*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULi8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1551:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VMULi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 57868*/      /*SwitchType*/ 27, MVT::v8i16,// ->57897
/* 57870*/        OPC_CheckChild1Type, MVT::v8i16,
/* 57872*/        OPC_RecordChild2, // #1 = $Qn
/* 57873*/        OPC_CheckChild2Type, MVT::v8i16,
/* 57875*/        OPC_RecordChild3, // #2 = $mask
/* 57876*/        OPC_CheckChild3Type, MVT::v8i1,
/* 57878*/        OPC_RecordChild4, // #3 = $inactive
/* 57879*/        OPC_CheckChild4Type, MVT::v8i16,
/* 57881*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57883*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57886*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULi16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1551:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VMULi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 57897*/      /*SwitchType*/ 27, MVT::v4i32,// ->57926
/* 57899*/        OPC_CheckChild1Type, MVT::v4i32,
/* 57901*/        OPC_RecordChild2, // #1 = $Qn
/* 57902*/        OPC_CheckChild2Type, MVT::v4i32,
/* 57904*/        OPC_RecordChild3, // #2 = $mask
/* 57905*/        OPC_CheckChild3Type, MVT::v4i1,
/* 57907*/        OPC_RecordChild4, // #3 = $inactive
/* 57908*/        OPC_CheckChild4Type, MVT::v4i32,
/* 57910*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 57912*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57915*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULi32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1551:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VMULi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 57926*/      /*SwitchType*/ 27, MVT::v4f32,// ->57955
/* 57928*/        OPC_CheckChild1Type, MVT::v4f32,
/* 57930*/        OPC_RecordChild2, // #1 = $Qn
/* 57931*/        OPC_CheckChild2Type, MVT::v4f32,
/* 57933*/        OPC_RecordChild3, // #2 = $mask
/* 57934*/        OPC_CheckChild3Type, MVT::v4i1,
/* 57936*/        OPC_RecordChild4, // #3 = $inactive
/* 57937*/        OPC_CheckChild4Type, MVT::v4f32,
/* 57939*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 57941*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57944*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULf32), 0,
                      MVT::v4f32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1551:{ *:[iPTR] }, MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4f32] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VMULf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4f32] }:$inactive)
/* 57955*/      /*SwitchType*/ 27, MVT::v8f16,// ->57984
/* 57957*/        OPC_CheckChild1Type, MVT::v8f16,
/* 57959*/        OPC_RecordChild2, // #1 = $Qn
/* 57960*/        OPC_CheckChild2Type, MVT::v8f16,
/* 57962*/        OPC_RecordChild3, // #2 = $mask
/* 57963*/        OPC_CheckChild3Type, MVT::v8i1,
/* 57965*/        OPC_RecordChild4, // #3 = $inactive
/* 57966*/        OPC_CheckChild4Type, MVT::v8f16,
/* 57968*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 57970*/        OPC_EmitInteger, MVT::i32, 1, 
/* 57973*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULf16), 0,
                      MVT::v8f16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1551:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8f16] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VMULf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8f16] }:$inactive)
/* 57984*/      0, // EndSwitchType
/* 57985*/    /*Scope*/ 102, /*->58088*/
/* 57986*/      OPC_CheckChild0Integer, 78|128,12/*1614*/, 
/* 57989*/      OPC_RecordChild1, // #0 = $Qm
/* 57990*/      OPC_SwitchType /*3 cases */, 30, MVT::v16i8,// ->58023
/* 57993*/        OPC_CheckChild1Type, MVT::v16i8,
/* 57995*/        OPC_RecordChild2, // #1 = $Qn
/* 57996*/        OPC_CheckChild2Type, MVT::v16i8,
/* 57998*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58000*/        OPC_EmitInteger, MVT::i32, 0, 
/* 58003*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58006*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 58012*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQDMULHi8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1614:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 8
                  // Dst: (MVE_VQDMULHi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 58023*/      /*SwitchType*/ 30, MVT::v8i16,// ->58055
/* 58025*/        OPC_CheckChild1Type, MVT::v8i16,
/* 58027*/        OPC_RecordChild2, // #1 = $Qn
/* 58028*/        OPC_CheckChild2Type, MVT::v8i16,
/* 58030*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58032*/        OPC_EmitInteger, MVT::i32, 0, 
/* 58035*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58038*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 58044*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQDMULHi16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1614:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 8
                  // Dst: (MVE_VQDMULHi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 58055*/      /*SwitchType*/ 30, MVT::v4i32,// ->58087
/* 58057*/        OPC_CheckChild1Type, MVT::v4i32,
/* 58059*/        OPC_RecordChild2, // #1 = $Qn
/* 58060*/        OPC_CheckChild2Type, MVT::v4i32,
/* 58062*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58064*/        OPC_EmitInteger, MVT::i32, 0, 
/* 58067*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58070*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 58076*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQDMULHi32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1614:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 8
                  // Dst: (MVE_VQDMULHi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 58087*/      0, // EndSwitchType
/* 58088*/    /*Scope*/ 93, /*->58182*/
/* 58089*/      OPC_CheckChild0Integer, 24|128,12/*1560*/, 
/* 58092*/      OPC_RecordChild1, // #0 = $Qm
/* 58093*/      OPC_SwitchType /*3 cases */, 27, MVT::v16i8,// ->58123
/* 58096*/        OPC_CheckChild1Type, MVT::v16i8,
/* 58098*/        OPC_RecordChild2, // #1 = $Qn
/* 58099*/        OPC_CheckChild2Type, MVT::v16i8,
/* 58101*/        OPC_RecordChild3, // #2 = $mask
/* 58102*/        OPC_CheckChild3Type, MVT::v16i1,
/* 58104*/        OPC_RecordChild4, // #3 = $inactive
/* 58105*/        OPC_CheckChild4Type, MVT::v16i8,
/* 58107*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58109*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58112*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQDMULHi8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1560:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VQDMULHi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 58123*/      /*SwitchType*/ 27, MVT::v8i16,// ->58152
/* 58125*/        OPC_CheckChild1Type, MVT::v8i16,
/* 58127*/        OPC_RecordChild2, // #1 = $Qn
/* 58128*/        OPC_CheckChild2Type, MVT::v8i16,
/* 58130*/        OPC_RecordChild3, // #2 = $mask
/* 58131*/        OPC_CheckChild3Type, MVT::v8i1,
/* 58133*/        OPC_RecordChild4, // #3 = $inactive
/* 58134*/        OPC_CheckChild4Type, MVT::v8i16,
/* 58136*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58138*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58141*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQDMULHi16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1560:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VQDMULHi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 58152*/      /*SwitchType*/ 27, MVT::v4i32,// ->58181
/* 58154*/        OPC_CheckChild1Type, MVT::v4i32,
/* 58156*/        OPC_RecordChild2, // #1 = $Qn
/* 58157*/        OPC_CheckChild2Type, MVT::v4i32,
/* 58159*/        OPC_RecordChild3, // #2 = $mask
/* 58160*/        OPC_CheckChild3Type, MVT::v4i1,
/* 58162*/        OPC_RecordChild4, // #3 = $inactive
/* 58163*/        OPC_CheckChild4Type, MVT::v4i32,
/* 58165*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58167*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58170*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQDMULHi32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1560:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VQDMULHi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 58181*/      0, // EndSwitchType
/* 58182*/    /*Scope*/ 102, /*->58285*/
/* 58183*/      OPC_CheckChild0Integer, 79|128,12/*1615*/, 
/* 58186*/      OPC_RecordChild1, // #0 = $Qm
/* 58187*/      OPC_SwitchType /*3 cases */, 30, MVT::v16i8,// ->58220
/* 58190*/        OPC_CheckChild1Type, MVT::v16i8,
/* 58192*/        OPC_RecordChild2, // #1 = $Qn
/* 58193*/        OPC_CheckChild2Type, MVT::v16i8,
/* 58195*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58197*/        OPC_EmitInteger, MVT::i32, 0, 
/* 58200*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58203*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 58209*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRDMULHi8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1615:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 8
                  // Dst: (MVE_VQRDMULHi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 58220*/      /*SwitchType*/ 30, MVT::v8i16,// ->58252
/* 58222*/        OPC_CheckChild1Type, MVT::v8i16,
/* 58224*/        OPC_RecordChild2, // #1 = $Qn
/* 58225*/        OPC_CheckChild2Type, MVT::v8i16,
/* 58227*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58229*/        OPC_EmitInteger, MVT::i32, 0, 
/* 58232*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58235*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 58241*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRDMULHi16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1615:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 8
                  // Dst: (MVE_VQRDMULHi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 58252*/      /*SwitchType*/ 30, MVT::v4i32,// ->58284
/* 58254*/        OPC_CheckChild1Type, MVT::v4i32,
/* 58256*/        OPC_RecordChild2, // #1 = $Qn
/* 58257*/        OPC_CheckChild2Type, MVT::v4i32,
/* 58259*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58261*/        OPC_EmitInteger, MVT::i32, 0, 
/* 58264*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58267*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 58273*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRDMULHi32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1615:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 8
                  // Dst: (MVE_VQRDMULHi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 58284*/      0, // EndSwitchType
/* 58285*/    /*Scope*/ 93, /*->58379*/
/* 58286*/      OPC_CheckChild0Integer, 25|128,12/*1561*/, 
/* 58289*/      OPC_RecordChild1, // #0 = $Qm
/* 58290*/      OPC_SwitchType /*3 cases */, 27, MVT::v16i8,// ->58320
/* 58293*/        OPC_CheckChild1Type, MVT::v16i8,
/* 58295*/        OPC_RecordChild2, // #1 = $Qn
/* 58296*/        OPC_CheckChild2Type, MVT::v16i8,
/* 58298*/        OPC_RecordChild3, // #2 = $mask
/* 58299*/        OPC_CheckChild3Type, MVT::v16i1,
/* 58301*/        OPC_RecordChild4, // #3 = $inactive
/* 58302*/        OPC_CheckChild4Type, MVT::v16i8,
/* 58304*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58306*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58309*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRDMULHi8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1561:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VQRDMULHi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 58320*/      /*SwitchType*/ 27, MVT::v8i16,// ->58349
/* 58322*/        OPC_CheckChild1Type, MVT::v8i16,
/* 58324*/        OPC_RecordChild2, // #1 = $Qn
/* 58325*/        OPC_CheckChild2Type, MVT::v8i16,
/* 58327*/        OPC_RecordChild3, // #2 = $mask
/* 58328*/        OPC_CheckChild3Type, MVT::v8i1,
/* 58330*/        OPC_RecordChild4, // #3 = $inactive
/* 58331*/        OPC_CheckChild4Type, MVT::v8i16,
/* 58333*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58335*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58338*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRDMULHi16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1561:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VQRDMULHi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 58349*/      /*SwitchType*/ 27, MVT::v4i32,// ->58378
/* 58351*/        OPC_CheckChild1Type, MVT::v4i32,
/* 58353*/        OPC_RecordChild2, // #1 = $Qn
/* 58354*/        OPC_CheckChild2Type, MVT::v4i32,
/* 58356*/        OPC_RecordChild3, // #2 = $mask
/* 58357*/        OPC_CheckChild3Type, MVT::v4i1,
/* 58359*/        OPC_RecordChild4, // #3 = $inactive
/* 58360*/        OPC_CheckChild4Type, MVT::v4i32,
/* 58362*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58364*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58367*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQRDMULHi32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1561:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VQRDMULHi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 58378*/      0, // EndSwitchType
/* 58379*/    /*Scope*/ 23|128,1/*151*/, /*->58532*/
/* 58381*/      OPC_CheckChild0Integer, 1|128,12/*1537*/, 
/* 58384*/      OPC_RecordChild1, // #0 = $Qm
/* 58385*/      OPC_SwitchType /*5 cases */, 27, MVT::v16i8,// ->58415
/* 58388*/        OPC_CheckChild1Type, MVT::v16i8,
/* 58390*/        OPC_RecordChild2, // #1 = $Qn
/* 58391*/        OPC_CheckChild2Type, MVT::v16i8,
/* 58393*/        OPC_RecordChild3, // #2 = $mask
/* 58394*/        OPC_CheckChild3Type, MVT::v16i1,
/* 58396*/        OPC_RecordChild4, // #3 = $inactive
/* 58397*/        OPC_CheckChild4Type, MVT::v16i8,
/* 58399*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58401*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58404*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDi8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1537:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VADDi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 58415*/      /*SwitchType*/ 27, MVT::v8i16,// ->58444
/* 58417*/        OPC_CheckChild1Type, MVT::v8i16,
/* 58419*/        OPC_RecordChild2, // #1 = $Qn
/* 58420*/        OPC_CheckChild2Type, MVT::v8i16,
/* 58422*/        OPC_RecordChild3, // #2 = $mask
/* 58423*/        OPC_CheckChild3Type, MVT::v8i1,
/* 58425*/        OPC_RecordChild4, // #3 = $inactive
/* 58426*/        OPC_CheckChild4Type, MVT::v8i16,
/* 58428*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58430*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58433*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDi16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1537:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VADDi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 58444*/      /*SwitchType*/ 27, MVT::v4i32,// ->58473
/* 58446*/        OPC_CheckChild1Type, MVT::v4i32,
/* 58448*/        OPC_RecordChild2, // #1 = $Qn
/* 58449*/        OPC_CheckChild2Type, MVT::v4i32,
/* 58451*/        OPC_RecordChild3, // #2 = $mask
/* 58452*/        OPC_CheckChild3Type, MVT::v4i1,
/* 58454*/        OPC_RecordChild4, // #3 = $inactive
/* 58455*/        OPC_CheckChild4Type, MVT::v4i32,
/* 58457*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58459*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58462*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDi32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1537:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VADDi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 58473*/      /*SwitchType*/ 27, MVT::v4f32,// ->58502
/* 58475*/        OPC_CheckChild1Type, MVT::v4f32,
/* 58477*/        OPC_RecordChild2, // #1 = $Qn
/* 58478*/        OPC_CheckChild2Type, MVT::v4f32,
/* 58480*/        OPC_RecordChild3, // #2 = $mask
/* 58481*/        OPC_CheckChild3Type, MVT::v4i1,
/* 58483*/        OPC_RecordChild4, // #3 = $inactive
/* 58484*/        OPC_CheckChild4Type, MVT::v4f32,
/* 58486*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 58488*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58491*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDf32), 0,
                      MVT::v4f32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1537:{ *:[iPTR] }, MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4f32] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VADDf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4f32] }:$inactive)
/* 58502*/      /*SwitchType*/ 27, MVT::v8f16,// ->58531
/* 58504*/        OPC_CheckChild1Type, MVT::v8f16,
/* 58506*/        OPC_RecordChild2, // #1 = $Qn
/* 58507*/        OPC_CheckChild2Type, MVT::v8f16,
/* 58509*/        OPC_RecordChild3, // #2 = $mask
/* 58510*/        OPC_CheckChild3Type, MVT::v8i1,
/* 58512*/        OPC_RecordChild4, // #3 = $inactive
/* 58513*/        OPC_CheckChild4Type, MVT::v8f16,
/* 58515*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 58517*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58520*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDf16), 0,
                      MVT::v8f16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1537:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8f16] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VADDf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8f16] }:$inactive)
/* 58531*/      0, // EndSwitchType
/* 58532*/    /*Scope*/ 23|128,1/*151*/, /*->58685*/
/* 58534*/      OPC_CheckChild0Integer, 37|128,12/*1573*/, 
/* 58537*/      OPC_RecordChild1, // #0 = $Qm
/* 58538*/      OPC_SwitchType /*5 cases */, 27, MVT::v16i8,// ->58568
/* 58541*/        OPC_CheckChild1Type, MVT::v16i8,
/* 58543*/        OPC_RecordChild2, // #1 = $Qn
/* 58544*/        OPC_CheckChild2Type, MVT::v16i8,
/* 58546*/        OPC_RecordChild3, // #2 = $mask
/* 58547*/        OPC_CheckChild3Type, MVT::v16i1,
/* 58549*/        OPC_RecordChild4, // #3 = $inactive
/* 58550*/        OPC_CheckChild4Type, MVT::v16i8,
/* 58552*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58554*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58557*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSUBi8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i8] } 1573:{ *:[iPTR] }, MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VSUBi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$mask, MQPR:{ *:[v16i8] }:$inactive)
/* 58568*/      /*SwitchType*/ 27, MVT::v8i16,// ->58597
/* 58570*/        OPC_CheckChild1Type, MVT::v8i16,
/* 58572*/        OPC_RecordChild2, // #1 = $Qn
/* 58573*/        OPC_CheckChild2Type, MVT::v8i16,
/* 58575*/        OPC_RecordChild3, // #2 = $mask
/* 58576*/        OPC_CheckChild3Type, MVT::v8i1,
/* 58578*/        OPC_RecordChild4, // #3 = $inactive
/* 58579*/        OPC_CheckChild4Type, MVT::v8i16,
/* 58581*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58583*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58586*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSUBi16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 1573:{ *:[iPTR] }, MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VSUBi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8i16] }:$inactive)
/* 58597*/      /*SwitchType*/ 27, MVT::v4i32,// ->58626
/* 58599*/        OPC_CheckChild1Type, MVT::v4i32,
/* 58601*/        OPC_RecordChild2, // #1 = $Qn
/* 58602*/        OPC_CheckChild2Type, MVT::v4i32,
/* 58604*/        OPC_RecordChild3, // #2 = $mask
/* 58605*/        OPC_CheckChild3Type, MVT::v4i1,
/* 58607*/        OPC_RecordChild4, // #3 = $inactive
/* 58608*/        OPC_CheckChild4Type, MVT::v4i32,
/* 58610*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58612*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58615*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSUBi32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1573:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VSUBi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4i32] }:$inactive)
/* 58626*/      /*SwitchType*/ 27, MVT::v4f32,// ->58655
/* 58628*/        OPC_CheckChild1Type, MVT::v4f32,
/* 58630*/        OPC_RecordChild2, // #1 = $Qn
/* 58631*/        OPC_CheckChild2Type, MVT::v4f32,
/* 58633*/        OPC_RecordChild3, // #2 = $mask
/* 58634*/        OPC_CheckChild3Type, MVT::v4i1,
/* 58636*/        OPC_RecordChild4, // #3 = $inactive
/* 58637*/        OPC_CheckChild4Type, MVT::v4f32,
/* 58639*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 58641*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58644*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSUBf32), 0,
                      MVT::v4f32, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1573:{ *:[iPTR] }, MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4f32] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VSUBf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4f32] }:$inactive)
/* 58655*/      /*SwitchType*/ 27, MVT::v8f16,// ->58684
/* 58657*/        OPC_CheckChild1Type, MVT::v8f16,
/* 58659*/        OPC_RecordChild2, // #1 = $Qn
/* 58660*/        OPC_CheckChild2Type, MVT::v8f16,
/* 58662*/        OPC_RecordChild3, // #2 = $mask
/* 58663*/        OPC_CheckChild3Type, MVT::v8i1,
/* 58665*/        OPC_RecordChild4, // #3 = $inactive
/* 58666*/        OPC_CheckChild4Type, MVT::v8f16,
/* 58668*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 58670*/        OPC_EmitInteger, MVT::i32, 1, 
/* 58673*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSUBf16), 0,
                      MVT::v8f16, 5/*#Ops*/, 0, 1, 4, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1573:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8f16] }:$inactive) - Complexity = 8
                  // Dst: (MVE_VSUBf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8f16] }:$inactive)
/* 58684*/      0, // EndSwitchType
/* 58685*/    /*Scope*/ 21, /*->58707*/
/* 58686*/      OPC_CheckChild0Integer, 58|128,12/*1594*/, 
/* 58689*/      OPC_RecordChild1, // #0 = $Rn
/* 58690*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58692*/      OPC_EmitInteger, MVT::i32, 0, 
/* 58695*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58698*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCTP8), 0,
                    MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v16i1] } 1594:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) - Complexity = 8
                // Dst: (MVE_VCTP8:{ *:[v16i1] } rGPR:{ *:[i32] }:$Rn)
/* 58707*/    /*Scope*/ 21, /*->58729*/
/* 58708*/      OPC_CheckChild0Integer, 55|128,12/*1591*/, 
/* 58711*/      OPC_RecordChild1, // #0 = $Rn
/* 58712*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58714*/      OPC_EmitInteger, MVT::i32, 0, 
/* 58717*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58720*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCTP16), 0,
                    MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v8i1] } 1591:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) - Complexity = 8
                // Dst: (MVE_VCTP16:{ *:[v8i1] } rGPR:{ *:[i32] }:$Rn)
/* 58729*/    /*Scope*/ 21, /*->58751*/
/* 58730*/      OPC_CheckChild0Integer, 56|128,12/*1592*/, 
/* 58733*/      OPC_RecordChild1, // #0 = $Rn
/* 58734*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58736*/      OPC_EmitInteger, MVT::i32, 0, 
/* 58739*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58742*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCTP32), 0,
                    MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i1] } 1592:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) - Complexity = 8
                // Dst: (MVE_VCTP32:{ *:[v4i1] } rGPR:{ *:[i32] }:$Rn)
/* 58751*/    /*Scope*/ 21, /*->58773*/
/* 58752*/      OPC_CheckChild0Integer, 57|128,12/*1593*/, 
/* 58755*/      OPC_RecordChild1, // #0 = $Rn
/* 58756*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 58758*/      OPC_EmitInteger, MVT::i32, 0, 
/* 58761*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58764*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCTP64), 0,
                    MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i1] } 1593:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn) - Complexity = 8
                // Dst: (MVE_VCTP64:{ *:[v4i1] } rGPR:{ *:[i32] }:$Rn)
/* 58773*/    /*Scope*/ 46, /*->58820*/
/* 58774*/      OPC_CheckChild0Integer, 111|128,13/*1775*/, 
/* 58777*/      OPC_RecordChild1, // #0 = $orig
/* 58778*/      OPC_RecordChild2, // #1 = $Vn0
/* 58779*/      OPC_RecordChild3, // #2 = $Vn1
/* 58780*/      OPC_RecordChild4, // #3 = $Vm
/* 58781*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 58783*/      OPC_EmitInteger, MVT::i32, ARM::DPairRegClassID,
/* 58786*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 58789*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 58792*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v16i8, 5/*#Ops*/, 4, 1, 5, 2, 6,  // Results = #7
/* 58803*/      OPC_EmitInteger, MVT::i32, 14, 
/* 58806*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58809*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTBX2), 0,
                    MVT::v8i8, 5/*#Ops*/, 0, 7, 3, 8, 9, 
                // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1775:{ *:[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)
/* 58820*/    /*Scope*/ 56, /*->58877*/
/* 58821*/      OPC_CheckChild0Integer, 109|128,13/*1773*/, 
/* 58824*/      OPC_RecordChild1, // #0 = $Vn0
/* 58825*/      OPC_RecordChild2, // #1 = $Vn1
/* 58826*/      OPC_RecordChild3, // #2 = $Vn2
/* 58827*/      OPC_RecordChild4, // #3 = $Vn3
/* 58828*/      OPC_RecordChild5, // #4 = $Vm
/* 58829*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 58831*/      OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 58834*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 58837*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 58840*/      OPC_EmitInteger, MVT::i32, ARM::dsub_2,
/* 58843*/      OPC_EmitInteger, MVT::i32, ARM::dsub_3,
/* 58846*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v4i64, 9/*#Ops*/, 5, 0, 6, 1, 7, 2, 8, 3, 9,  // Results = #10
/* 58861*/      OPC_EmitInteger, MVT::i32, 14, 
/* 58864*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58867*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTBL4Pseudo), 0,
                    MVT::v8i8, 4/*#Ops*/, 10, 4, 11, 12, 
                // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1773:{ *:[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)
/* 58877*/    /*Scope*/ 58, /*->58936*/
/* 58878*/      OPC_CheckChild0Integer, 113|128,13/*1777*/, 
/* 58881*/      OPC_RecordChild1, // #0 = $orig
/* 58882*/      OPC_RecordChild2, // #1 = $Vn0
/* 58883*/      OPC_RecordChild3, // #2 = $Vn1
/* 58884*/      OPC_RecordChild4, // #3 = $Vn2
/* 58885*/      OPC_RecordChild5, // #4 = $Vn3
/* 58886*/      OPC_RecordChild6, // #5 = $Vm
/* 58887*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 58889*/      OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 58892*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 58895*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 58898*/      OPC_EmitInteger, MVT::i32, ARM::dsub_2,
/* 58901*/      OPC_EmitInteger, MVT::i32, ARM::dsub_3,
/* 58904*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v4i64, 9/*#Ops*/, 6, 1, 7, 2, 8, 3, 9, 4, 10,  // Results = #11
/* 58919*/      OPC_EmitInteger, MVT::i32, 14, 
/* 58922*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58925*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTBX4Pseudo), 0,
                    MVT::v8i8, 5/*#Ops*/, 0, 11, 5, 12, 13, 
                // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1777:{ *:[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)
/* 58936*/    /*Scope*/ 61, /*->58998*/
/* 58937*/      OPC_CheckChild0Integer, 108|128,13/*1772*/, 
/* 58940*/      OPC_RecordChild1, // #0 = $Vn0
/* 58941*/      OPC_RecordChild2, // #1 = $Vn1
/* 58942*/      OPC_RecordChild3, // #2 = $Vn2
/* 58943*/      OPC_RecordChild4, // #3 = $Vm
/* 58944*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 58946*/      OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 58949*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 58952*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 58955*/      OPC_EmitInteger, MVT::i32, ARM::dsub_2,
/* 58958*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i8, 0/*#Ops*/,  // Results = #8
/* 58964*/      OPC_EmitInteger, MVT::i32, ARM::dsub_3,
/* 58967*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v4i64, 9/*#Ops*/, 4, 0, 5, 1, 6, 2, 7, 8, 9,  // Results = #10
/* 58982*/      OPC_EmitInteger, MVT::i32, 14, 
/* 58985*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 58988*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTBL3Pseudo), 0,
                    MVT::v8i8, 4/*#Ops*/, 10, 3, 11, 12, 
                // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1772:{ *:[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)
/* 58998*/    /*Scope*/ 63, /*->59062*/
/* 58999*/      OPC_CheckChild0Integer, 112|128,13/*1776*/, 
/* 59002*/      OPC_RecordChild1, // #0 = $orig
/* 59003*/      OPC_RecordChild2, // #1 = $Vn0
/* 59004*/      OPC_RecordChild3, // #2 = $Vn1
/* 59005*/      OPC_RecordChild4, // #3 = $Vn2
/* 59006*/      OPC_RecordChild5, // #4 = $Vm
/* 59007*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 59009*/      OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 59012*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 59015*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/* 59018*/      OPC_EmitInteger, MVT::i32, ARM::dsub_2,
/* 59021*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i8, 0/*#Ops*/,  // Results = #9
/* 59027*/      OPC_EmitInteger, MVT::i32, ARM::dsub_3,
/* 59030*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v4i64, 9/*#Ops*/, 5, 1, 6, 2, 7, 3, 8, 9, 10,  // Results = #11
/* 59045*/      OPC_EmitInteger, MVT::i32, 14, 
/* 59048*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59051*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VTBX3Pseudo), 0,
                    MVT::v8i8, 5/*#Ops*/, 0, 11, 4, 12, 13, 
                // Src: (intrinsic_wo_chain:{ *:[v8i8] } 1776:{ *:[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)
/* 59062*/    /*Scope*/ 43, /*->59106*/
/* 59063*/      OPC_CheckChild0Integer, 115|128,12/*1651*/, 
/* 59066*/      OPC_RecordChild1, // #0 = $hash_abcd
/* 59067*/      OPC_RecordChild2, // #1 = $hash_e
/* 59068*/      OPC_RecordChild3, // #2 = $wk
/* 59069*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 59071*/      OPC_EmitInteger, MVT::i64, 0, 
/* 59074*/      OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 59077*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 59085*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 59088*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::v16i8, 3/*#Ops*/, 3, 5, 6,  // Results = #7
/* 59097*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA1C), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 7, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1651:{ *:[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)
/* 59106*/    /*Scope*/ 43, /*->59150*/
/* 59107*/      OPC_CheckChild0Integer, 117|128,12/*1653*/, 
/* 59110*/      OPC_RecordChild1, // #0 = $hash_abcd
/* 59111*/      OPC_RecordChild2, // #1 = $hash_e
/* 59112*/      OPC_RecordChild3, // #2 = $wk
/* 59113*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 59115*/      OPC_EmitInteger, MVT::i64, 0, 
/* 59118*/      OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 59121*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 59129*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 59132*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::v16i8, 3/*#Ops*/, 3, 5, 6,  // Results = #7
/* 59141*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA1M), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 7, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1653:{ *:[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)
/* 59150*/    /*Scope*/ 43, /*->59194*/
/* 59151*/      OPC_CheckChild0Integer, 118|128,12/*1654*/, 
/* 59154*/      OPC_RecordChild1, // #0 = $hash_abcd
/* 59155*/      OPC_RecordChild2, // #1 = $hash_e
/* 59156*/      OPC_RecordChild3, // #2 = $wk
/* 59157*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 59159*/      OPC_EmitInteger, MVT::i64, 0, 
/* 59162*/      OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/* 59165*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 59173*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/* 59176*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::v16i8, 3/*#Ops*/, 3, 5, 6,  // Results = #7
/* 59185*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SHA1P), 0,
                    MVT::v4i32, 3/*#Ops*/, 0, 7, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4i32] } 1654:{ *:[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)
/* 59194*/    /*Scope*/ 49, /*->59244*/
/* 59195*/      OPC_CheckChild0Integer, 59|128,12/*1595*/, 
/* 59198*/      OPC_RecordChild1, // #0 = $Qd_src
/* 59199*/      OPC_RecordChild2, // #1 = $Qm
/* 59200*/      OPC_Scope, 20, /*->59222*/ // 2 children in Scope
/* 59202*/        OPC_CheckChild3Integer, 0, 
/* 59204*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 59206*/        OPC_EmitInteger, MVT::i32, 0, 
/* 59209*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59212*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCVTf16f32bh), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1595:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm, 0:{ *:[i32] }) - Complexity = 13
                  // Dst: (MVE_VCVTf16f32bh:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm)
/* 59222*/      /*Scope*/ 20, /*->59243*/
/* 59223*/        OPC_CheckChild3Integer, 1, 
/* 59225*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 59227*/        OPC_EmitInteger, MVT::i32, 0, 
/* 59230*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59233*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCVTf16f32th), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1595:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm, 1:{ *:[i32] }) - Complexity = 13
                  // Dst: (MVE_VCVTf16f32th:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm)
/* 59243*/      0, /*End of Scope*/
/* 59244*/    /*Scope*/ 45, /*->59290*/
/* 59245*/      OPC_CheckChild0Integer, 60|128,12/*1596*/, 
/* 59248*/      OPC_RecordChild1, // #0 = $Qd_src
/* 59249*/      OPC_RecordChild2, // #1 = $Qm
/* 59250*/      OPC_Scope, 18, /*->59270*/ // 2 children in Scope
/* 59252*/        OPC_CheckChild3Integer, 0, 
/* 59254*/        OPC_RecordChild4, // #2 = $mask
/* 59255*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 59257*/        OPC_EmitInteger, MVT::i32, 1, 
/* 59260*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCVTf16f32bh), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 3, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1596:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask) - Complexity = 13
                  // Dst: (MVE_VCVTf16f32bh:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 59270*/      /*Scope*/ 18, /*->59289*/
/* 59271*/        OPC_CheckChild3Integer, 1, 
/* 59273*/        OPC_RecordChild4, // #2 = $mask
/* 59274*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 59276*/        OPC_EmitInteger, MVT::i32, 1, 
/* 59279*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCVTf16f32th), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 3, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1596:{ *:[iPTR] }, MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask) - Complexity = 13
                  // Dst: (MVE_VCVTf16f32th:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qm, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 59289*/      0, /*End of Scope*/
/* 59290*/    /*Scope*/ 2|128,1/*130*/, /*->59422*/
/* 59292*/      OPC_CheckChild0Integer, 12|128,13/*1676*/, 
/* 59295*/      OPC_RecordChild1, // #0 = $Vm
/* 59296*/      OPC_Scope, 30, /*->59328*/ // 4 children in Scope
/* 59298*/        OPC_CheckChild1Type, MVT::v2i32,
/* 59300*/        OPC_RecordChild2, // #1 = $SIMM
/* 59301*/        OPC_MoveChild2,
/* 59302*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59305*/        OPC_MoveParent,
/* 59306*/        OPC_CheckType, MVT::v2f32,
/* 59308*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 59310*/        OPC_EmitConvertToTarget, 1,
/* 59312*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59315*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59318*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxs2fd), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1676:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxs2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 59328*/      /*Scope*/ 30, /*->59359*/
/* 59329*/        OPC_CheckChild1Type, MVT::v4i16,
/* 59331*/        OPC_RecordChild2, // #1 = $SIMM
/* 59332*/        OPC_MoveChild2,
/* 59333*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59336*/        OPC_MoveParent,
/* 59337*/        OPC_CheckType, MVT::v4f16,
/* 59339*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 59341*/        OPC_EmitConvertToTarget, 1,
/* 59343*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59346*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59349*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxs2hd), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1676:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxs2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 59359*/      /*Scope*/ 30, /*->59390*/
/* 59360*/        OPC_CheckChild1Type, MVT::v4i32,
/* 59362*/        OPC_RecordChild2, // #1 = $SIMM
/* 59363*/        OPC_MoveChild2,
/* 59364*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59367*/        OPC_MoveParent,
/* 59368*/        OPC_CheckType, MVT::v4f32,
/* 59370*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 59372*/        OPC_EmitConvertToTarget, 1,
/* 59374*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59377*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59380*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxs2fq), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1676:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxs2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 59390*/      /*Scope*/ 30, /*->59421*/
/* 59391*/        OPC_CheckChild1Type, MVT::v8i16,
/* 59393*/        OPC_RecordChild2, // #1 = $SIMM
/* 59394*/        OPC_MoveChild2,
/* 59395*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59398*/        OPC_MoveParent,
/* 59399*/        OPC_CheckType, MVT::v8f16,
/* 59401*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 59403*/        OPC_EmitConvertToTarget, 1,
/* 59405*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59408*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59411*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxs2hq), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1676:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxs2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 59421*/      0, /*End of Scope*/
/* 59422*/    /*Scope*/ 2|128,1/*130*/, /*->59554*/
/* 59424*/      OPC_CheckChild0Integer, 13|128,13/*1677*/, 
/* 59427*/      OPC_RecordChild1, // #0 = $Vm
/* 59428*/      OPC_Scope, 30, /*->59460*/ // 4 children in Scope
/* 59430*/        OPC_CheckChild1Type, MVT::v2i32,
/* 59432*/        OPC_RecordChild2, // #1 = $SIMM
/* 59433*/        OPC_MoveChild2,
/* 59434*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59437*/        OPC_MoveParent,
/* 59438*/        OPC_CheckType, MVT::v2f32,
/* 59440*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 59442*/        OPC_EmitConvertToTarget, 1,
/* 59444*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59447*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59450*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxu2fd), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1677:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxu2fd:{ *:[v2f32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 59460*/      /*Scope*/ 30, /*->59491*/
/* 59461*/        OPC_CheckChild1Type, MVT::v4i16,
/* 59463*/        OPC_RecordChild2, // #1 = $SIMM
/* 59464*/        OPC_MoveChild2,
/* 59465*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59468*/        OPC_MoveParent,
/* 59469*/        OPC_CheckType, MVT::v4f16,
/* 59471*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 59473*/        OPC_EmitConvertToTarget, 1,
/* 59475*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59478*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59481*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxu2hd), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1677:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxu2hd:{ *:[v4f16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 59491*/      /*Scope*/ 30, /*->59522*/
/* 59492*/        OPC_CheckChild1Type, MVT::v4i32,
/* 59494*/        OPC_RecordChild2, // #1 = $SIMM
/* 59495*/        OPC_MoveChild2,
/* 59496*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59499*/        OPC_MoveParent,
/* 59500*/        OPC_CheckType, MVT::v4f32,
/* 59502*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 59504*/        OPC_EmitConvertToTarget, 1,
/* 59506*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59509*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59512*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxu2fq), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1677:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxu2fq:{ *:[v4f32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 59522*/      /*Scope*/ 30, /*->59553*/
/* 59523*/        OPC_CheckChild1Type, MVT::v8i16,
/* 59525*/        OPC_RecordChild2, // #1 = $SIMM
/* 59526*/        OPC_MoveChild2,
/* 59527*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59530*/        OPC_MoveParent,
/* 59531*/        OPC_CheckType, MVT::v8f16,
/* 59533*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 59535*/        OPC_EmitConvertToTarget, 1,
/* 59537*/        OPC_EmitInteger, MVT::i32, 14, 
/* 59540*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59543*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTxu2hq), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1677:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 11
                  // Dst: (VCVTxu2hq:{ *:[v8f16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/* 59553*/      0, /*End of Scope*/
/* 59554*/    /*Scope*/ 76, /*->59631*/
/* 59555*/      OPC_CheckChild0Integer, 51|128,12/*1587*/, 
/* 59558*/      OPC_RecordChild1, // #0 = $rot
/* 59559*/      OPC_MoveChild1,
/* 59560*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59563*/      OPC_MoveParent,
/* 59564*/      OPC_RecordChild2, // #1 = $Qd_src
/* 59565*/      OPC_SwitchType /*2 cases */, 30, MVT::v8f16,// ->59598
/* 59568*/        OPC_CheckChild2Type, MVT::v8f16,
/* 59570*/        OPC_RecordChild3, // #2 = $Qn
/* 59571*/        OPC_CheckChild3Type, MVT::v8f16,
/* 59573*/        OPC_RecordChild4, // #3 = $Qm
/* 59574*/        OPC_CheckChild4Type, MVT::v8f16,
/* 59576*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 59578*/        OPC_EmitConvertToTarget, 0,
/* 59580*/        OPC_EmitInteger, MVT::i32, 0, 
/* 59583*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59586*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMLAf16), 0,
                      MVT::v8f16, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1587:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm) - Complexity = 11
                  // Dst: (MVE_VCMLAf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$rot)
/* 59598*/      /*SwitchType*/ 30, MVT::v4f32,// ->59630
/* 59600*/        OPC_CheckChild2Type, MVT::v4f32,
/* 59602*/        OPC_RecordChild3, // #2 = $Qn
/* 59603*/        OPC_CheckChild3Type, MVT::v4f32,
/* 59605*/        OPC_RecordChild4, // #3 = $Qm
/* 59606*/        OPC_CheckChild4Type, MVT::v4f32,
/* 59608*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 59610*/        OPC_EmitConvertToTarget, 0,
/* 59612*/        OPC_EmitInteger, MVT::i32, 0, 
/* 59615*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59618*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMLAf32), 0,
                      MVT::v4f32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1587:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4f32] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm) - Complexity = 11
                  // Dst: (MVE_VCMLAf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$rot)
/* 59630*/      0, // EndSwitchType
/* 59631*/    /*Scope*/ 76, /*->59708*/
/* 59632*/      OPC_CheckChild0Integer, 52|128,12/*1588*/, 
/* 59635*/      OPC_RecordChild1, // #0 = $rot
/* 59636*/      OPC_MoveChild1,
/* 59637*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59640*/      OPC_MoveParent,
/* 59641*/      OPC_RecordChild2, // #1 = $Qd_src
/* 59642*/      OPC_SwitchType /*2 cases */, 30, MVT::v8f16,// ->59675
/* 59645*/        OPC_CheckChild2Type, MVT::v8f16,
/* 59647*/        OPC_RecordChild3, // #2 = $Qn
/* 59648*/        OPC_CheckChild3Type, MVT::v8f16,
/* 59650*/        OPC_RecordChild4, // #3 = $Qm
/* 59651*/        OPC_CheckChild4Type, MVT::v8f16,
/* 59653*/        OPC_RecordChild5, // #4 = $mask
/* 59654*/        OPC_CheckChild5Type, MVT::v8i1,
/* 59656*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 59658*/        OPC_EmitConvertToTarget, 0,
/* 59660*/        OPC_EmitInteger, MVT::i32, 1, 
/* 59663*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMLAf16), 0,
                      MVT::v8f16, 6/*#Ops*/, 1, 2, 3, 5, 6, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1588:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 11
                  // Dst: (MVE_VCMLAf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qd_src, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$rot, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask)
/* 59675*/      /*SwitchType*/ 30, MVT::v4f32,// ->59707
/* 59677*/        OPC_CheckChild2Type, MVT::v4f32,
/* 59679*/        OPC_RecordChild3, // #2 = $Qn
/* 59680*/        OPC_CheckChild3Type, MVT::v4f32,
/* 59682*/        OPC_RecordChild4, // #3 = $Qm
/* 59683*/        OPC_CheckChild4Type, MVT::v4f32,
/* 59685*/        OPC_RecordChild5, // #4 = $mask
/* 59686*/        OPC_CheckChild5Type, MVT::v4i1,
/* 59688*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 59690*/        OPC_EmitConvertToTarget, 0,
/* 59692*/        OPC_EmitInteger, MVT::i32, 1, 
/* 59695*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMLAf32), 0,
                      MVT::v4f32, 6/*#Ops*/, 1, 2, 3, 5, 6, 4, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1588:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4f32] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 11
                  // Dst: (MVE_VCMLAf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qd_src, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$rot, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask)
/* 59707*/      0, // EndSwitchType
/* 59708*/    /*Scope*/ 82, /*->59791*/
/* 59709*/      OPC_CheckChild0Integer, 53|128,12/*1589*/, 
/* 59712*/      OPC_RecordChild1, // #0 = $rot
/* 59713*/      OPC_MoveChild1,
/* 59714*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59717*/      OPC_MoveParent,
/* 59718*/      OPC_RecordChild2, // #1 = $Qn
/* 59719*/      OPC_SwitchType /*2 cases */, 33, MVT::v8f16,// ->59755
/* 59722*/        OPC_CheckChild2Type, MVT::v8f16,
/* 59724*/        OPC_RecordChild3, // #2 = $Qm
/* 59725*/        OPC_CheckChild3Type, MVT::v8f16,
/* 59727*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 59729*/        OPC_EmitConvertToTarget, 0,
/* 59731*/        OPC_EmitInteger, MVT::i32, 0, 
/* 59734*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59737*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #6
/* 59743*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMULf16), 0,
                      MVT::v8f16, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1589:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm) - Complexity = 11
                  // Dst: (MVE_VCMULf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$rot)
/* 59755*/      /*SwitchType*/ 33, MVT::v4f32,// ->59790
/* 59757*/        OPC_CheckChild2Type, MVT::v4f32,
/* 59759*/        OPC_RecordChild3, // #2 = $Qm
/* 59760*/        OPC_CheckChild3Type, MVT::v4f32,
/* 59762*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 59764*/        OPC_EmitConvertToTarget, 0,
/* 59766*/        OPC_EmitInteger, MVT::i32, 0, 
/* 59769*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 59772*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #6
/* 59778*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMULf32), 0,
                      MVT::v4f32, 6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1589:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm) - Complexity = 11
                  // Dst: (MVE_VCMULf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$rot)
/* 59790*/      0, // EndSwitchType
/* 59791*/    /*Scope*/ 76, /*->59868*/
/* 59792*/      OPC_CheckChild0Integer, 54|128,12/*1590*/, 
/* 59795*/      OPC_RecordChild1, // #0 = $rot
/* 59796*/      OPC_MoveChild1,
/* 59797*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 59800*/      OPC_MoveParent,
/* 59801*/      OPC_RecordChild2, // #1 = $inactive
/* 59802*/      OPC_SwitchType /*2 cases */, 30, MVT::v8f16,// ->59835
/* 59805*/        OPC_CheckChild2Type, MVT::v8f16,
/* 59807*/        OPC_RecordChild3, // #2 = $Qn
/* 59808*/        OPC_CheckChild3Type, MVT::v8f16,
/* 59810*/        OPC_RecordChild4, // #3 = $Qm
/* 59811*/        OPC_CheckChild4Type, MVT::v8f16,
/* 59813*/        OPC_RecordChild5, // #4 = $mask
/* 59814*/        OPC_CheckChild5Type, MVT::v8i1,
/* 59816*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 59818*/        OPC_EmitConvertToTarget, 0,
/* 59820*/        OPC_EmitInteger, MVT::i32, 1, 
/* 59823*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMULf16), 0,
                      MVT::v8f16, 6/*#Ops*/, 2, 3, 5, 6, 4, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1590:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v8f16] }:$inactive, MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, VCCR:{ *:[v8i1] }:$mask) - Complexity = 11
                  // Dst: (MVE_VCMULf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qn, MQPR:{ *:[v8f16] }:$Qm, (imm:{ *:[i32] }):$rot, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$mask, MQPR:{ *:[v8f16] }:$inactive)
/* 59835*/      /*SwitchType*/ 30, MVT::v4f32,// ->59867
/* 59837*/        OPC_CheckChild2Type, MVT::v4f32,
/* 59839*/        OPC_RecordChild3, // #2 = $Qn
/* 59840*/        OPC_CheckChild3Type, MVT::v4f32,
/* 59842*/        OPC_RecordChild4, // #3 = $Qm
/* 59843*/        OPC_CheckChild4Type, MVT::v4f32,
/* 59845*/        OPC_RecordChild5, // #4 = $mask
/* 59846*/        OPC_CheckChild5Type, MVT::v4i1,
/* 59848*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/* 59850*/        OPC_EmitConvertToTarget, 0,
/* 59852*/        OPC_EmitInteger, MVT::i32, 1, 
/* 59855*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMULf32), 0,
                      MVT::v4f32, 6/*#Ops*/, 2, 3, 5, 6, 4, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1590:{ *:[iPTR] }, (imm:{ *:[i32] }):$rot, MQPR:{ *:[v4f32] }:$inactive, MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, VCCR:{ *:[v4i1] }:$mask) - Complexity = 11
                  // Dst: (MVE_VCMULf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qn, MQPR:{ *:[v4f32] }:$Qm, (imm:{ *:[i32] }):$rot, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$mask, MQPR:{ *:[v4f32] }:$inactive)
/* 59867*/      0, // EndSwitchType
/* 59868*/    /*Scope*/ 90, /*->59959*/
/* 59869*/      OPC_CheckChild0Integer, 5|128,13/*1669*/, 
/* 59872*/      OPC_RecordChild1, // #0 = $Rn
/* 59873*/      OPC_SwitchType /*4 cases */, 19, MVT::v4f16,// ->59895
/* 59876*/        OPC_CheckChild1Type, MVT::v4f16,
/* 59878*/        OPC_RecordChild2, // #1 = $Rm
/* 59879*/        OPC_CheckChild2Type, MVT::v4f16,
/* 59881*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8_3aOps())
/* 59883*/        OPC_EmitInteger, MVT::i32, 0, 
/* 59886*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCADDv4f16), 0,
                      MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1669:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Rn, DPR:{ *:[v4f16] }:$Rm) - Complexity = 8
                  // Dst: (VCADDv4f16:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Rn, DPR:{ *:[v4f16] }:$Rm, 0:{ *:[i32] })
/* 59895*/      /*SwitchType*/ 19, MVT::v8f16,// ->59916
/* 59897*/        OPC_CheckChild1Type, MVT::v8f16,
/* 59899*/        OPC_RecordChild2, // #1 = $Rm
/* 59900*/        OPC_CheckChild2Type, MVT::v8f16,
/* 59902*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8_3aOps())
/* 59904*/        OPC_EmitInteger, MVT::i32, 0, 
/* 59907*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCADDv8f16), 0,
                      MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1669:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Rn, QPR:{ *:[v8f16] }:$Rm) - Complexity = 8
                  // Dst: (VCADDv8f16:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Rn, QPR:{ *:[v8f16] }:$Rm, 0:{ *:[i32] })
/* 59916*/      /*SwitchType*/ 19, MVT::v2f32,// ->59937
/* 59918*/        OPC_CheckChild1Type, MVT::v2f32,
/* 59920*/        OPC_RecordChild2, // #1 = $Rm
/* 59921*/        OPC_CheckChild2Type, MVT::v2f32,
/* 59923*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasNEON()) && (Subtarget->hasV8_3aOps())
/* 59925*/        OPC_EmitInteger, MVT::i32, 0, 
/* 59928*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCADDv2f32), 0,
                      MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1669:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Rn, DPR:{ *:[v2f32] }:$Rm) - Complexity = 8
                  // Dst: (VCADDv2f32:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Rn, DPR:{ *:[v2f32] }:$Rm, 0:{ *:[i32] })
/* 59937*/      /*SwitchType*/ 19, MVT::v4f32,// ->59958
/* 59939*/        OPC_CheckChild1Type, MVT::v4f32,
/* 59941*/        OPC_RecordChild2, // #1 = $Rm
/* 59942*/        OPC_CheckChild2Type, MVT::v4f32,
/* 59944*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasNEON()) && (Subtarget->hasV8_3aOps())
/* 59946*/        OPC_EmitInteger, MVT::i32, 0, 
/* 59949*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCADDv4f32), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1669:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Rn, QPR:{ *:[v4f32] }:$Rm) - Complexity = 8
                  // Dst: (VCADDv4f32:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Rn, QPR:{ *:[v4f32] }:$Rm, 0:{ *:[i32] })
/* 59958*/      0, // EndSwitchType
/* 59959*/    /*Scope*/ 90, /*->60050*/
/* 59960*/      OPC_CheckChild0Integer, 4|128,13/*1668*/, 
/* 59963*/      OPC_RecordChild1, // #0 = $Rn
/* 59964*/      OPC_SwitchType /*4 cases */, 19, MVT::v4f16,// ->59986
/* 59967*/        OPC_CheckChild1Type, MVT::v4f16,
/* 59969*/        OPC_RecordChild2, // #1 = $Rm
/* 59970*/        OPC_CheckChild2Type, MVT::v4f16,
/* 59972*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8_3aOps())
/* 59974*/        OPC_EmitInteger, MVT::i32, 1, 
/* 59977*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCADDv4f16), 0,
                      MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1668:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Rn, DPR:{ *:[v4f16] }:$Rm) - Complexity = 8
                  // Dst: (VCADDv4f16:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Rn, DPR:{ *:[v4f16] }:$Rm, 1:{ *:[i32] })
/* 59986*/      /*SwitchType*/ 19, MVT::v8f16,// ->60007
/* 59988*/        OPC_CheckChild1Type, MVT::v8f16,
/* 59990*/        OPC_RecordChild2, // #1 = $Rm
/* 59991*/        OPC_CheckChild2Type, MVT::v8f16,
/* 59993*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8_3aOps())
/* 59995*/        OPC_EmitInteger, MVT::i32, 1, 
/* 59998*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCADDv8f16), 0,
                      MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1668:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Rn, QPR:{ *:[v8f16] }:$Rm) - Complexity = 8
                  // Dst: (VCADDv8f16:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Rn, QPR:{ *:[v8f16] }:$Rm, 1:{ *:[i32] })
/* 60007*/      /*SwitchType*/ 19, MVT::v2f32,// ->60028
/* 60009*/        OPC_CheckChild1Type, MVT::v2f32,
/* 60011*/        OPC_RecordChild2, // #1 = $Rm
/* 60012*/        OPC_CheckChild2Type, MVT::v2f32,
/* 60014*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasNEON()) && (Subtarget->hasV8_3aOps())
/* 60016*/        OPC_EmitInteger, MVT::i32, 1, 
/* 60019*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCADDv2f32), 0,
                      MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1668:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Rn, DPR:{ *:[v2f32] }:$Rm) - Complexity = 8
                  // Dst: (VCADDv2f32:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Rn, DPR:{ *:[v2f32] }:$Rm, 1:{ *:[i32] })
/* 60028*/      /*SwitchType*/ 19, MVT::v4f32,// ->60049
/* 60030*/        OPC_CheckChild1Type, MVT::v4f32,
/* 60032*/        OPC_RecordChild2, // #1 = $Rm
/* 60033*/        OPC_CheckChild2Type, MVT::v4f32,
/* 60035*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasNEON()) && (Subtarget->hasV8_3aOps())
/* 60037*/        OPC_EmitInteger, MVT::i32, 1, 
/* 60040*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCADDv4f32), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1668:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Rn, QPR:{ *:[v4f32] }:$Rm) - Complexity = 8
                  // Dst: (VCADDv4f32:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Rn, QPR:{ *:[v4f32] }:$Rm, 1:{ *:[i32] })
/* 60049*/      0, // EndSwitchType
/* 60050*/    /*Scope*/ 106, /*->60157*/
/* 60051*/      OPC_CheckChild0Integer, 78|128,13/*1742*/, 
/* 60054*/      OPC_RecordChild1, // #0 = $Vn
/* 60055*/      OPC_SwitchType /*4 cases */, 23, MVT::v2f32,// ->60081
/* 60058*/        OPC_CheckChild1Type, MVT::v2f32,
/* 60060*/        OPC_RecordChild2, // #1 = $Vm
/* 60061*/        OPC_CheckChild2Type, MVT::v2f32,
/* 60063*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 60065*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60068*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60071*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPSfd), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1742:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRECPSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 60081*/      /*SwitchType*/ 23, MVT::v4f32,// ->60106
/* 60083*/        OPC_CheckChild1Type, MVT::v4f32,
/* 60085*/        OPC_RecordChild2, // #1 = $Vm
/* 60086*/        OPC_CheckChild2Type, MVT::v4f32,
/* 60088*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 60090*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60093*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60096*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPSfq), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1742:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRECPSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 60106*/      /*SwitchType*/ 23, MVT::v4f16,// ->60131
/* 60108*/        OPC_CheckChild1Type, MVT::v4f16,
/* 60110*/        OPC_RecordChild2, // #1 = $Vm
/* 60111*/        OPC_CheckChild2Type, MVT::v4f16,
/* 60113*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 60115*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60118*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60121*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPShd), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1742:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRECPShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 60131*/      /*SwitchType*/ 23, MVT::v8f16,// ->60156
/* 60133*/        OPC_CheckChild1Type, MVT::v8f16,
/* 60135*/        OPC_RecordChild2, // #1 = $Vm
/* 60136*/        OPC_CheckChild2Type, MVT::v8f16,
/* 60138*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 60140*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60143*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60146*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRECPShq), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1742:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRECPShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 60156*/      0, // EndSwitchType
/* 60157*/    /*Scope*/ 106, /*->60264*/
/* 60158*/      OPC_CheckChild0Integer, 91|128,13/*1755*/, 
/* 60161*/      OPC_RecordChild1, // #0 = $Vn
/* 60162*/      OPC_SwitchType /*4 cases */, 23, MVT::v2f32,// ->60188
/* 60165*/        OPC_CheckChild1Type, MVT::v2f32,
/* 60167*/        OPC_RecordChild2, // #1 = $Vm
/* 60168*/        OPC_CheckChild2Type, MVT::v2f32,
/* 60170*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 60172*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60175*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60178*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTSfd), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1755:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTSfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/* 60188*/      /*SwitchType*/ 23, MVT::v4f32,// ->60213
/* 60190*/        OPC_CheckChild1Type, MVT::v4f32,
/* 60192*/        OPC_RecordChild2, // #1 = $Vm
/* 60193*/        OPC_CheckChild2Type, MVT::v4f32,
/* 60195*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 60197*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60200*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60203*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTSfq), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1755:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTSfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/* 60213*/      /*SwitchType*/ 23, MVT::v4f16,// ->60238
/* 60215*/        OPC_CheckChild1Type, MVT::v4f16,
/* 60217*/        OPC_RecordChild2, // #1 = $Vm
/* 60218*/        OPC_CheckChild2Type, MVT::v4f16,
/* 60220*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 60222*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60225*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60228*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTShd), 0,
                      MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1755:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTShd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/* 60238*/      /*SwitchType*/ 23, MVT::v8f16,// ->60263
/* 60240*/        OPC_CheckChild1Type, MVT::v8f16,
/* 60242*/        OPC_RecordChild2, // #1 = $Vm
/* 60243*/        OPC_CheckChild2Type, MVT::v8f16,
/* 60245*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/* 60247*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60250*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60253*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSQRTShq), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1755:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRSQRTShq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/* 60263*/      0, // EndSwitchType
/* 60264*/    /*Scope*/ 21, /*->60286*/
/* 60265*/      OPC_CheckChild0Integer, 14|128,13/*1678*/, 
/* 60268*/      OPC_RecordChild1, // #0 = $Vm
/* 60269*/      OPC_CheckPatternPredicate, 33, // (Subtarget->hasFP16()) && (Subtarget->hasNEON())
/* 60271*/      OPC_EmitInteger, MVT::i32, 14, 
/* 60274*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60277*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCVTh2f), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1678:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vm) - Complexity = 8
                // Dst: (VCVTh2f:{ *:[v4f32] } DPR:{ *:[v4i16] }:$Vm)
/* 60286*/    /*Scope*/ 58, /*->60345*/
/* 60287*/      OPC_CheckChild0Integer, 85|128,13/*1749*/, 
/* 60290*/      OPC_RecordChild1, // #0 = $Vm
/* 60291*/      OPC_SwitchType /*4 cases */, 11, MVT::v2f32,// ->60305
/* 60294*/        OPC_CheckChild1Type, MVT::v2f32,
/* 60296*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60298*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTXNDf), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1749:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTXNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 60305*/      /*SwitchType*/ 11, MVT::v4f32,// ->60318
/* 60307*/        OPC_CheckChild1Type, MVT::v4f32,
/* 60309*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60311*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTXNQf), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1749:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTXNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 60318*/      /*SwitchType*/ 11, MVT::v4f16,// ->60331
/* 60320*/        OPC_CheckChild1Type, MVT::v4f16,
/* 60322*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60324*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTXNDh), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1749:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTXNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 60331*/      /*SwitchType*/ 11, MVT::v8f16,// ->60344
/* 60333*/        OPC_CheckChild1Type, MVT::v8f16,
/* 60335*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60337*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTXNQh), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1749:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTXNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 60344*/      0, // EndSwitchType
/* 60345*/    /*Scope*/ 58, /*->60404*/
/* 60346*/      OPC_CheckChild0Integer, 81|128,13/*1745*/, 
/* 60349*/      OPC_RecordChild1, // #0 = $Vm
/* 60350*/      OPC_SwitchType /*4 cases */, 11, MVT::v2f32,// ->60364
/* 60353*/        OPC_CheckChild1Type, MVT::v2f32,
/* 60355*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60357*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTANDf), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1745:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTANDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 60364*/      /*SwitchType*/ 11, MVT::v4f32,// ->60377
/* 60366*/        OPC_CheckChild1Type, MVT::v4f32,
/* 60368*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60370*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTANQf), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1745:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTANQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 60377*/      /*SwitchType*/ 11, MVT::v4f16,// ->60390
/* 60379*/        OPC_CheckChild1Type, MVT::v4f16,
/* 60381*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60383*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTANDh), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1745:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTANDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 60390*/      /*SwitchType*/ 11, MVT::v8f16,// ->60403
/* 60392*/        OPC_CheckChild1Type, MVT::v8f16,
/* 60394*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60396*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTANQh), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1745:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTANQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 60403*/      0, // EndSwitchType
/* 60404*/    /*Scope*/ 58, /*->60463*/
/* 60405*/      OPC_CheckChild0Integer, 86|128,13/*1750*/, 
/* 60408*/      OPC_RecordChild1, // #0 = $Vm
/* 60409*/      OPC_SwitchType /*4 cases */, 11, MVT::v2f32,// ->60423
/* 60412*/        OPC_CheckChild1Type, MVT::v2f32,
/* 60414*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60416*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTZNDf), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1750:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTZNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 60423*/      /*SwitchType*/ 11, MVT::v4f32,// ->60436
/* 60425*/        OPC_CheckChild1Type, MVT::v4f32,
/* 60427*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60429*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTZNQf), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1750:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTZNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 60436*/      /*SwitchType*/ 11, MVT::v4f16,// ->60449
/* 60438*/        OPC_CheckChild1Type, MVT::v4f16,
/* 60440*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60442*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTZNDh), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1750:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTZNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 60449*/      /*SwitchType*/ 11, MVT::v8f16,// ->60462
/* 60451*/        OPC_CheckChild1Type, MVT::v8f16,
/* 60453*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60455*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTZNQh), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1750:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTZNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 60462*/      0, // EndSwitchType
/* 60463*/    /*Scope*/ 58, /*->60522*/
/* 60464*/      OPC_CheckChild0Integer, 82|128,13/*1746*/, 
/* 60467*/      OPC_RecordChild1, // #0 = $Vm
/* 60468*/      OPC_SwitchType /*4 cases */, 11, MVT::v2f32,// ->60482
/* 60471*/        OPC_CheckChild1Type, MVT::v2f32,
/* 60473*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60475*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTMNDf), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1746:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTMNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 60482*/      /*SwitchType*/ 11, MVT::v4f32,// ->60495
/* 60484*/        OPC_CheckChild1Type, MVT::v4f32,
/* 60486*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60488*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTMNQf), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1746:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTMNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 60495*/      /*SwitchType*/ 11, MVT::v4f16,// ->60508
/* 60497*/        OPC_CheckChild1Type, MVT::v4f16,
/* 60499*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60501*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTMNDh), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1746:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTMNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 60508*/      /*SwitchType*/ 11, MVT::v8f16,// ->60521
/* 60510*/        OPC_CheckChild1Type, MVT::v8f16,
/* 60512*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60514*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTMNQh), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1746:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTMNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 60521*/      0, // EndSwitchType
/* 60522*/    /*Scope*/ 58, /*->60581*/
/* 60523*/      OPC_CheckChild0Integer, 84|128,13/*1748*/, 
/* 60526*/      OPC_RecordChild1, // #0 = $Vm
/* 60527*/      OPC_SwitchType /*4 cases */, 11, MVT::v2f32,// ->60541
/* 60530*/        OPC_CheckChild1Type, MVT::v2f32,
/* 60532*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60534*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTPNDf), 0,
                      MVT::v2f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f32] } 1748:{ *:[iPTR] }, DPR:{ *:[v2f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTPNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/* 60541*/      /*SwitchType*/ 11, MVT::v4f32,// ->60554
/* 60543*/        OPC_CheckChild1Type, MVT::v4f32,
/* 60545*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60547*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTPNQf), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 1748:{ *:[iPTR] }, QPR:{ *:[v4f32] }:$Vm) - Complexity = 8
                  // Dst: (VRINTPNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/* 60554*/      /*SwitchType*/ 11, MVT::v4f16,// ->60567
/* 60556*/        OPC_CheckChild1Type, MVT::v4f16,
/* 60558*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60560*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTPNDh), 0,
                      MVT::v4f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f16] } 1748:{ *:[iPTR] }, DPR:{ *:[v4f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTPNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/* 60567*/      /*SwitchType*/ 11, MVT::v8f16,// ->60580
/* 60569*/        OPC_CheckChild1Type, MVT::v8f16,
/* 60571*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/* 60573*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTPNQh), 0,
                      MVT::v8f16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f16] } 1748:{ *:[iPTR] }, QPR:{ *:[v8f16] }:$Vm) - Complexity = 8
                  // Dst: (VRINTPNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/* 60580*/      0, // EndSwitchType
/* 60581*/    0, /*End of Scope*/
/* 60582*/  /*SwitchOpcode*/ 79|128,2/*335*/, TARGET_VAL(ISD::SRL),// ->60921
/* 60586*/    OPC_Scope, 18|128,1/*146*/, /*->60735*/ // 3 children in Scope
/* 60589*/      OPC_MoveChild0,
/* 60590*/      OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
/* 60593*/      OPC_MoveChild0,
/* 60594*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 60597*/      OPC_RecordMemRef,
/* 60598*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 60599*/      OPC_CheckFoldableChainNode,
/* 60600*/      OPC_RecordChild1, // #1 = $addr
/* 60601*/      OPC_CheckChild1Type, MVT::i32,
/* 60603*/      OPC_CheckPredicate, 37, // Predicate_unindexedload
/* 60605*/      OPC_CheckPredicate, 38, // Predicate_extload
/* 60607*/      OPC_CheckPredicate, 39, // Predicate_extloadi16
/* 60609*/      OPC_MoveParent,
/* 60610*/      OPC_MoveParent,
/* 60611*/      OPC_CheckChild1Integer, 16, 
/* 60613*/      OPC_CheckChild1Type, MVT::i32,
/* 60615*/      OPC_CheckType, MVT::i32,
/* 60617*/      OPC_Scope, 38, /*->60657*/ // 2 children in Scope
/* 60619*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 60621*/        OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrMode3:$addr #2 #3 #4
/* 60624*/        OPC_EmitMergeInputChains1_0,
/* 60625*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60628*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60631*/        OPC_EmitNode1, TARGET_VAL(ARM::LDRH), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/* 60642*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60645*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60648*/        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))
/* 60657*/      /*Scope*/ 76, /*->60734*/
/* 60658*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 60660*/        OPC_Scope, 35, /*->60697*/ // 2 children in Scope
/* 60662*/          OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectThumbAddrModeImm5S2:$addr #2 #3
/* 60665*/          OPC_EmitMergeInputChains1_0,
/* 60666*/          OPC_EmitInteger, MVT::i32, 14, 
/* 60669*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60672*/          OPC_EmitNode1, TARGET_VAL(ARM::tLDRHi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 60682*/          OPC_EmitInteger, MVT::i32, 14, 
/* 60685*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60688*/          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))
/* 60697*/        /*Scope*/ 35, /*->60733*/
/* 60698*/          OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 60701*/          OPC_EmitMergeInputChains1_0,
/* 60702*/          OPC_EmitInteger, MVT::i32, 14, 
/* 60705*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60708*/          OPC_EmitNode1, TARGET_VAL(ARM::tLDRHr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 60718*/          OPC_EmitInteger, MVT::i32, 14, 
/* 60721*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60724*/          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))
/* 60733*/        0, /*End of Scope*/
/* 60734*/      0, /*End of Scope*/
/* 60735*/    /*Scope*/ 56, /*->60792*/
/* 60736*/      OPC_RecordNode, // #0 = $src
/* 60737*/      OPC_CheckType, MVT::i32,
/* 60739*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 60741*/      OPC_Scope, 24, /*->60767*/ // 2 children in Scope
/* 60743*/        OPC_CheckComplexPat, /*CP*/10, /*#*/0, // SelectShiftRegShifterOperand:$src #1 #2 #3
/* 60746*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60749*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60752*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60755*/        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)
/* 60767*/      /*Scope*/ 23, /*->60791*/
/* 60768*/        OPC_CheckComplexPat, /*CP*/11, /*#*/0, // SelectShiftImmShifterOperand:$src #1 #2
/* 60771*/        OPC_EmitInteger, MVT::i32, 14, 
/* 60774*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60777*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60780*/        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)
/* 60791*/      0, /*End of Scope*/
/* 60792*/    /*Scope*/ 127, /*->60920*/
/* 60793*/      OPC_RecordChild0, // #0 = $Rm
/* 60794*/      OPC_RecordChild1, // #1 = $imm5
/* 60795*/      OPC_Scope, 69, /*->60866*/ // 2 children in Scope
/* 60797*/        OPC_MoveChild1,
/* 60798*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 60801*/        OPC_CheckPredicate, 40, // Predicate_imm_sr
/* 60803*/        OPC_CheckType, MVT::i32,
/* 60805*/        OPC_MoveParent,
/* 60806*/        OPC_CheckType, MVT::i32,
/* 60808*/        OPC_Scope, 27, /*->60837*/ // 2 children in Scope
/* 60810*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 60812*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 60815*/          OPC_EmitConvertToTarget, 1,
/* 60817*/          OPC_EmitNodeXForm, 13, 3, // imm_sr_XFORM
/* 60820*/          OPC_EmitInteger, MVT::i32, 14, 
/* 60823*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60826*/          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))
/* 60837*/        /*Scope*/ 27, /*->60865*/
/* 60838*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 60840*/          OPC_EmitConvertToTarget, 1,
/* 60842*/          OPC_EmitNodeXForm, 13, 2, // imm_sr_XFORM
/* 60845*/          OPC_EmitInteger, MVT::i32, 14, 
/* 60848*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60851*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60854*/          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))
/* 60865*/        0, /*End of Scope*/
/* 60866*/      /*Scope*/ 52, /*->60919*/
/* 60867*/        OPC_CheckChild1Type, MVT::i32,
/* 60869*/        OPC_CheckType, MVT::i32,
/* 60871*/        OPC_Scope, 22, /*->60895*/ // 2 children in Scope
/* 60873*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 60875*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 60878*/          OPC_EmitInteger, MVT::i32, 14, 
/* 60881*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60884*/          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)
/* 60895*/        /*Scope*/ 22, /*->60918*/
/* 60896*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 60898*/          OPC_EmitInteger, MVT::i32, 14, 
/* 60901*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60904*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60907*/          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)
/* 60918*/        0, /*End of Scope*/
/* 60919*/      0, /*End of Scope*/
/* 60920*/    0, /*End of Scope*/
/* 60921*/  /*SwitchOpcode*/ 63|128,43/*5567*/, TARGET_VAL(ISD::STORE),// ->66492
/* 60925*/    OPC_RecordMemRef,
/* 60926*/    OPC_RecordNode, // #0 = 'st' chained node
/* 60927*/    OPC_Scope, 88|128,3/*472*/, /*->61402*/ // 6 children in Scope
/* 60930*/      OPC_MoveChild1,
/* 60931*/      OPC_SwitchOpcode /*3 cases */, 12|128,1/*140*/, TARGET_VAL(ISD::SRL),// ->61076
/* 60936*/        OPC_MoveChild0,
/* 60937*/        OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
/* 60940*/        OPC_RecordChild0, // #1 = $Rn
/* 60941*/        OPC_MoveParent,
/* 60942*/        OPC_CheckChild1Integer, 16, 
/* 60944*/        OPC_CheckChild1Type, MVT::i32,
/* 60946*/        OPC_CheckType, MVT::i32,
/* 60948*/        OPC_MoveParent,
/* 60949*/        OPC_RecordChild2, // #2 = $addr
/* 60950*/        OPC_CheckChild2Type, MVT::i32,
/* 60952*/        OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 60954*/        OPC_CheckPredicate, 42, // Predicate_truncstore
/* 60956*/        OPC_CheckPredicate, 39, // Predicate_truncstorei16
/* 60958*/        OPC_Scope, 38, /*->60998*/ // 2 children in Scope
/* 60960*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 60962*/          OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectAddrMode3:$addr #3 #4 #5
/* 60965*/          OPC_EmitMergeInputChains1_0,
/* 60966*/          OPC_EmitInteger, MVT::i32, 14, 
/* 60969*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60972*/          OPC_EmitNode1, TARGET_VAL(ARM::REV16), 0,
                        MVT::i32, 3/*#Ops*/, 1, 6, 7,  // Results = #8
/* 60981*/          OPC_EmitInteger, MVT::i32, 14, 
/* 60984*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 60987*/          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)
/* 60998*/        /*Scope*/ 76, /*->61075*/
/* 60999*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 61001*/          OPC_Scope, 35, /*->61038*/ // 2 children in Scope
/* 61003*/            OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectThumbAddrModeImm5S2:$addr #3 #4
/* 61006*/            OPC_EmitMergeInputChains1_0,
/* 61007*/            OPC_EmitInteger, MVT::i32, 14, 
/* 61010*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61013*/            OPC_EmitNode1, TARGET_VAL(ARM::tREV16), 0,
                          MVT::i32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 61022*/            OPC_EmitInteger, MVT::i32, 14, 
/* 61025*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61028*/            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)
/* 61038*/          /*Scope*/ 35, /*->61074*/
/* 61039*/            OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectThumbAddrModeRR:$addr #3 #4
/* 61042*/            OPC_EmitMergeInputChains1_0,
/* 61043*/            OPC_EmitInteger, MVT::i32, 14, 
/* 61046*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61049*/            OPC_EmitNode1, TARGET_VAL(ARM::tREV16), 0,
                          MVT::i32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 61058*/            OPC_EmitInteger, MVT::i32, 14, 
/* 61061*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61064*/            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)
/* 61074*/          0, /*End of Scope*/
/* 61075*/        0, /*End of Scope*/
/* 61076*/      /*SwitchOpcode*/ 83|128,1/*211*/, TARGET_VAL(ARMISD::VGETLANEu),// ->61291
/* 61080*/        OPC_RecordChild0, // #1 = $Vd
/* 61081*/        OPC_Scope, 51, /*->61134*/ // 4 children in Scope
/* 61083*/          OPC_CheckChild0Type, MVT::v8i8,
/* 61085*/          OPC_RecordChild1, // #2 = $lane
/* 61086*/          OPC_MoveChild1,
/* 61087*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61090*/          OPC_MoveParent,
/* 61091*/          OPC_MoveParent,
/* 61092*/          OPC_RecordChild2, // #3 = $Rn
/* 61093*/          OPC_RecordChild3, // #4 = $Rm
/* 61094*/          OPC_CheckChild3Type, MVT::i32,
/* 61096*/          OPC_CheckPredicate, 42, // Predicate_itruncstore
/* 61098*/          OPC_CheckPredicate, 43, // Predicate_post_truncst
/* 61100*/          OPC_CheckPredicate, 44, // Predicate_post_truncsti8
/* 61102*/          OPC_CheckType, MVT::i32,
/* 61104*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61106*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$Rn #5 #6
/* 61109*/          OPC_CheckComplexPat, /*CP*/13, /*#*/4, // SelectAddrMode6Offset:$Rm #7
/* 61112*/          OPC_EmitMergeInputChains1_0,
/* 61113*/          OPC_EmitConvertToTarget, 2,
/* 61115*/          OPC_EmitInteger, MVT::i32, 14, 
/* 61118*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61121*/          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] } (ARMvgetlaneu:{ *:[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)
/* 61134*/        /*Scope*/ 51, /*->61186*/
/* 61135*/          OPC_CheckChild0Type, MVT::v4i16,
/* 61137*/          OPC_RecordChild1, // #2 = $lane
/* 61138*/          OPC_MoveChild1,
/* 61139*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61142*/          OPC_MoveParent,
/* 61143*/          OPC_MoveParent,
/* 61144*/          OPC_RecordChild2, // #3 = $Rn
/* 61145*/          OPC_RecordChild3, // #4 = $Rm
/* 61146*/          OPC_CheckChild3Type, MVT::i32,
/* 61148*/          OPC_CheckPredicate, 42, // Predicate_itruncstore
/* 61150*/          OPC_CheckPredicate, 43, // Predicate_post_truncst
/* 61152*/          OPC_CheckPredicate, 39, // Predicate_post_truncsti16
/* 61154*/          OPC_CheckType, MVT::i32,
/* 61156*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61158*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$Rn #5 #6
/* 61161*/          OPC_CheckComplexPat, /*CP*/13, /*#*/4, // SelectAddrMode6Offset:$Rm #7
/* 61164*/          OPC_EmitMergeInputChains1_0,
/* 61165*/          OPC_EmitConvertToTarget, 2,
/* 61167*/          OPC_EmitInteger, MVT::i32, 14, 
/* 61170*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61173*/          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] } (ARMvgetlaneu:{ *:[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)
/* 61186*/        /*Scope*/ 51, /*->61238*/
/* 61187*/          OPC_CheckChild0Type, MVT::v16i8,
/* 61189*/          OPC_RecordChild1, // #2 = $lane
/* 61190*/          OPC_MoveChild1,
/* 61191*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61194*/          OPC_MoveParent,
/* 61195*/          OPC_MoveParent,
/* 61196*/          OPC_RecordChild2, // #3 = $addr
/* 61197*/          OPC_RecordChild3, // #4 = $offset
/* 61198*/          OPC_CheckChild3Type, MVT::i32,
/* 61200*/          OPC_CheckPredicate, 42, // Predicate_itruncstore
/* 61202*/          OPC_CheckPredicate, 43, // Predicate_post_truncst
/* 61204*/          OPC_CheckPredicate, 44, // Predicate_post_truncsti8
/* 61206*/          OPC_CheckType, MVT::i32,
/* 61208*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61210*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$addr #5 #6
/* 61213*/          OPC_CheckComplexPat, /*CP*/13, /*#*/4, // SelectAddrMode6Offset:$offset #7
/* 61216*/          OPC_EmitMergeInputChains1_0,
/* 61217*/          OPC_EmitConvertToTarget, 2,
/* 61219*/          OPC_EmitInteger, MVT::i32, 14, 
/* 61222*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61225*/          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] } (ARMvgetlaneu:{ *:[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)
/* 61238*/        /*Scope*/ 51, /*->61290*/
/* 61239*/          OPC_CheckChild0Type, MVT::v8i16,
/* 61241*/          OPC_RecordChild1, // #2 = $lane
/* 61242*/          OPC_MoveChild1,
/* 61243*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61246*/          OPC_MoveParent,
/* 61247*/          OPC_MoveParent,
/* 61248*/          OPC_RecordChild2, // #3 = $addr
/* 61249*/          OPC_RecordChild3, // #4 = $offset
/* 61250*/          OPC_CheckChild3Type, MVT::i32,
/* 61252*/          OPC_CheckPredicate, 42, // Predicate_itruncstore
/* 61254*/          OPC_CheckPredicate, 43, // Predicate_post_truncst
/* 61256*/          OPC_CheckPredicate, 39, // Predicate_post_truncsti16
/* 61258*/          OPC_CheckType, MVT::i32,
/* 61260*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61262*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$addr #5 #6
/* 61265*/          OPC_CheckComplexPat, /*CP*/13, /*#*/4, // SelectAddrMode6Offset:$offset #7
/* 61268*/          OPC_EmitMergeInputChains1_0,
/* 61269*/          OPC_EmitConvertToTarget, 2,
/* 61271*/          OPC_EmitInteger, MVT::i32, 14, 
/* 61274*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61277*/          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] } (ARMvgetlaneu:{ *:[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)
/* 61290*/        0, /*End of Scope*/
/* 61291*/      /*SwitchOpcode*/ 107, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->61401
/* 61294*/        OPC_RecordChild0, // #1 = $Vd
/* 61295*/        OPC_Scope, 51, /*->61348*/ // 2 children in Scope
/* 61297*/          OPC_CheckChild0Type, MVT::v2i32,
/* 61299*/          OPC_RecordChild1, // #2 = $lane
/* 61300*/          OPC_MoveChild1,
/* 61301*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61304*/          OPC_MoveParent,
/* 61305*/          OPC_CheckType, MVT::i32,
/* 61307*/          OPC_MoveParent,
/* 61308*/          OPC_RecordChild2, // #3 = $Rn
/* 61309*/          OPC_RecordChild3, // #4 = $Rm
/* 61310*/          OPC_CheckChild3Type, MVT::i32,
/* 61312*/          OPC_CheckPredicate, 45, // Predicate_istore
/* 61314*/          OPC_CheckPredicate, 43, // Predicate_post_store
/* 61316*/          OPC_CheckType, MVT::i32,
/* 61318*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61320*/          OPC_CheckComplexPat, /*CP*/14, /*#*/3, // SelectAddrMode6:$Rn #5 #6
/* 61323*/          OPC_CheckComplexPat, /*CP*/13, /*#*/4, // SelectAddrMode6Offset:$Rm #7
/* 61326*/          OPC_EmitMergeInputChains1_0,
/* 61327*/          OPC_EmitConvertToTarget, 2,
/* 61329*/          OPC_EmitInteger, MVT::i32, 14, 
/* 61332*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61335*/          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)
/* 61348*/        /*Scope*/ 51, /*->61400*/
/* 61349*/          OPC_CheckChild0Type, MVT::v4i32,
/* 61351*/          OPC_RecordChild1, // #2 = $lane
/* 61352*/          OPC_MoveChild1,
/* 61353*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61356*/          OPC_MoveParent,
/* 61357*/          OPC_CheckType, MVT::i32,
/* 61359*/          OPC_MoveParent,
/* 61360*/          OPC_RecordChild2, // #3 = $addr
/* 61361*/          OPC_RecordChild3, // #4 = $offset
/* 61362*/          OPC_CheckChild3Type, MVT::i32,
/* 61364*/          OPC_CheckPredicate, 45, // Predicate_istore
/* 61366*/          OPC_CheckPredicate, 43, // Predicate_post_store
/* 61368*/          OPC_CheckType, MVT::i32,
/* 61370*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61372*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$addr #5 #6
/* 61375*/          OPC_CheckComplexPat, /*CP*/13, /*#*/4, // SelectAddrMode6Offset:$offset #7
/* 61378*/          OPC_EmitMergeInputChains1_0,
/* 61379*/          OPC_EmitConvertToTarget, 2,
/* 61381*/          OPC_EmitInteger, MVT::i32, 14, 
/* 61384*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61387*/          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)
/* 61400*/        0, /*End of Scope*/
/* 61401*/      0, // EndSwitchOpcode
/* 61402*/    /*Scope*/ 125|128,1/*253*/, /*->61657*/
/* 61404*/      OPC_RecordChild1, // #1 = $src
/* 61405*/      OPC_CheckChild1Type, MVT::i32,
/* 61407*/      OPC_RecordChild2, // #2 = $addr
/* 61408*/      OPC_Scope, 86, /*->61496*/ // 2 children in Scope
/* 61410*/        OPC_CheckChild2Type, MVT::i32,
/* 61412*/        OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 61414*/        OPC_Scope, 24, /*->61440*/ // 2 children in Scope
/* 61416*/          OPC_CheckPredicate, 45, // Predicate_store
/* 61418*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 61420*/          OPC_CheckComplexPat, /*CP*/15, /*#*/2, // SelectAddrModePC:$addr #3 #4
/* 61423*/          OPC_EmitMergeInputChains1_0,
/* 61424*/          OPC_EmitInteger, MVT::i32, 14, 
/* 61427*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61430*/          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)
/* 61440*/        /*Scope*/ 54, /*->61495*/
/* 61441*/          OPC_CheckPredicate, 42, // Predicate_truncstore
/* 61443*/          OPC_Scope, 24, /*->61469*/ // 2 children in Scope
/* 61445*/            OPC_CheckPredicate, 39, // Predicate_truncstorei16
/* 61447*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 61449*/            OPC_CheckComplexPat, /*CP*/15, /*#*/2, // SelectAddrModePC:$addr #3 #4
/* 61452*/            OPC_EmitMergeInputChains1_0,
/* 61453*/            OPC_EmitInteger, MVT::i32, 14, 
/* 61456*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61459*/            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)
/* 61469*/          /*Scope*/ 24, /*->61494*/
/* 61470*/            OPC_CheckPredicate, 44, // Predicate_truncstorei8
/* 61472*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 61474*/            OPC_CheckComplexPat, /*CP*/15, /*#*/2, // SelectAddrModePC:$addr #3 #4
/* 61477*/            OPC_EmitMergeInputChains1_0,
/* 61478*/            OPC_EmitInteger, MVT::i32, 14, 
/* 61481*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61484*/            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)
/* 61494*/          0, /*End of Scope*/
/* 61495*/        0, /*End of Scope*/
/* 61496*/      /*Scope*/ 30|128,1/*158*/, /*->61656*/
/* 61498*/        OPC_RecordChild3, // #3 = $offset
/* 61499*/        OPC_CheckChild3Type, MVT::i32,
/* 61501*/        OPC_CheckType, MVT::i32,
/* 61503*/        OPC_Scope, 57, /*->61562*/ // 2 children in Scope
/* 61505*/          OPC_CheckPredicate, 45, // Predicate_istore
/* 61507*/          OPC_CheckPredicate, 43, // Predicate_post_store
/* 61509*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 61511*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #4
/* 61514*/          OPC_Scope, 22, /*->61538*/ // 2 children in Scope
/* 61516*/            OPC_CheckComplexPat, /*CP*/16, /*#*/3, // SelectAddrMode2OffsetReg:$offset #5 #6
/* 61519*/            OPC_EmitMergeInputChains1_0,
/* 61520*/            OPC_EmitInteger, MVT::i32, 14, 
/* 61523*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61526*/            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)
/* 61538*/          /*Scope*/ 22, /*->61561*/
/* 61539*/            OPC_CheckComplexPat, /*CP*/17, /*#*/3, // SelectAddrMode2OffsetImm:$offset #5 #6
/* 61542*/            OPC_EmitMergeInputChains1_0,
/* 61543*/            OPC_EmitInteger, MVT::i32, 14, 
/* 61546*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61549*/            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)
/* 61561*/          0, /*End of Scope*/
/* 61562*/        /*Scope*/ 92, /*->61655*/
/* 61563*/          OPC_CheckPredicate, 42, // Predicate_itruncstore
/* 61565*/          OPC_CheckPredicate, 43, // Predicate_post_truncst
/* 61567*/          OPC_Scope, 55, /*->61624*/ // 2 children in Scope
/* 61569*/            OPC_CheckPredicate, 44, // Predicate_post_truncsti8
/* 61571*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 61573*/            OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #4
/* 61576*/            OPC_Scope, 22, /*->61600*/ // 2 children in Scope
/* 61578*/              OPC_CheckComplexPat, /*CP*/16, /*#*/3, // SelectAddrMode2OffsetReg:$offset #5 #6
/* 61581*/              OPC_EmitMergeInputChains1_0,
/* 61582*/              OPC_EmitInteger, MVT::i32, 14, 
/* 61585*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61588*/              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)
/* 61600*/            /*Scope*/ 22, /*->61623*/
/* 61601*/              OPC_CheckComplexPat, /*CP*/17, /*#*/3, // SelectAddrMode2OffsetImm:$offset #5 #6
/* 61604*/              OPC_EmitMergeInputChains1_0,
/* 61605*/              OPC_EmitInteger, MVT::i32, 14, 
/* 61608*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61611*/              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)
/* 61623*/            0, /*End of Scope*/
/* 61624*/          /*Scope*/ 29, /*->61654*/
/* 61625*/            OPC_CheckPredicate, 39, // Predicate_post_truncsti16
/* 61627*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 61629*/            OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #4
/* 61632*/            OPC_CheckComplexPat, /*CP*/18, /*#*/3, // SelectAddrMode3Offset:$offset #5 #6
/* 61635*/            OPC_EmitMergeInputChains1_0,
/* 61636*/            OPC_EmitInteger, MVT::i32, 14, 
/* 61639*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61642*/            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)
/* 61654*/          0, /*End of Scope*/
/* 61655*/        0, /*End of Scope*/
/* 61656*/      0, /*End of Scope*/
/* 61657*/    /*Scope*/ 73|128,3/*457*/, /*->62116*/
/* 61659*/      OPC_MoveChild1,
/* 61660*/      OPC_SwitchOpcode /*2 cases */, 51|128,1/*179*/, TARGET_VAL(ARMISD::VGETLANEu),// ->61844
/* 61665*/        OPC_RecordChild0, // #1 = $Vd
/* 61666*/        OPC_Scope, 43, /*->61711*/ // 4 children in Scope
/* 61668*/          OPC_CheckChild0Type, MVT::v8i8,
/* 61670*/          OPC_RecordChild1, // #2 = $lane
/* 61671*/          OPC_MoveChild1,
/* 61672*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61675*/          OPC_MoveParent,
/* 61676*/          OPC_MoveParent,
/* 61677*/          OPC_RecordChild2, // #3 = $Rn
/* 61678*/          OPC_CheckChild2Type, MVT::i32,
/* 61680*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 61682*/          OPC_CheckPredicate, 42, // Predicate_truncstore
/* 61684*/          OPC_CheckPredicate, 44, // Predicate_truncstorei8
/* 61686*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61688*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$Rn #4 #5
/* 61691*/          OPC_EmitMergeInputChains1_0,
/* 61692*/          OPC_EmitConvertToTarget, 2,
/* 61694*/          OPC_EmitInteger, MVT::i32, 14, 
/* 61697*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61700*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1LNd8), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 4, 5, 1, 6, 7, 8, 
                    // Src: (st (ARMvgetlaneu:{ *:[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)
/* 61711*/        /*Scope*/ 43, /*->61755*/
/* 61712*/          OPC_CheckChild0Type, MVT::v4i16,
/* 61714*/          OPC_RecordChild1, // #2 = $lane
/* 61715*/          OPC_MoveChild1,
/* 61716*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61719*/          OPC_MoveParent,
/* 61720*/          OPC_MoveParent,
/* 61721*/          OPC_RecordChild2, // #3 = $Rn
/* 61722*/          OPC_CheckChild2Type, MVT::i32,
/* 61724*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 61726*/          OPC_CheckPredicate, 42, // Predicate_truncstore
/* 61728*/          OPC_CheckPredicate, 39, // Predicate_truncstorei16
/* 61730*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61732*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$Rn #4 #5
/* 61735*/          OPC_EmitMergeInputChains1_0,
/* 61736*/          OPC_EmitConvertToTarget, 2,
/* 61738*/          OPC_EmitInteger, MVT::i32, 14, 
/* 61741*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61744*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 4, 5, 1, 6, 7, 8, 
                    // Src: (st (ARMvgetlaneu:{ *:[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)
/* 61755*/        /*Scope*/ 43, /*->61799*/
/* 61756*/          OPC_CheckChild0Type, MVT::v16i8,
/* 61758*/          OPC_RecordChild1, // #2 = $lane
/* 61759*/          OPC_MoveChild1,
/* 61760*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61763*/          OPC_MoveParent,
/* 61764*/          OPC_MoveParent,
/* 61765*/          OPC_RecordChild2, // #3 = $addr
/* 61766*/          OPC_CheckChild2Type, MVT::i32,
/* 61768*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 61770*/          OPC_CheckPredicate, 42, // Predicate_truncstore
/* 61772*/          OPC_CheckPredicate, 44, // Predicate_truncstorei8
/* 61774*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61776*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$addr #4 #5
/* 61779*/          OPC_EmitMergeInputChains1_0,
/* 61780*/          OPC_EmitConvertToTarget, 2,
/* 61782*/          OPC_EmitInteger, MVT::i32, 14, 
/* 61785*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61788*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1LNq8Pseudo), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 4, 5, 1, 6, 7, 8, 
                    // Src: (st (ARMvgetlaneu:{ *:[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)
/* 61799*/        /*Scope*/ 43, /*->61843*/
/* 61800*/          OPC_CheckChild0Type, MVT::v8i16,
/* 61802*/          OPC_RecordChild1, // #2 = $lane
/* 61803*/          OPC_MoveChild1,
/* 61804*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61807*/          OPC_MoveParent,
/* 61808*/          OPC_MoveParent,
/* 61809*/          OPC_RecordChild2, // #3 = $addr
/* 61810*/          OPC_CheckChild2Type, MVT::i32,
/* 61812*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 61814*/          OPC_CheckPredicate, 42, // Predicate_truncstore
/* 61816*/          OPC_CheckPredicate, 39, // Predicate_truncstorei16
/* 61818*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61820*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$addr #4 #5
/* 61823*/          OPC_EmitMergeInputChains1_0,
/* 61824*/          OPC_EmitConvertToTarget, 2,
/* 61826*/          OPC_EmitInteger, MVT::i32, 14, 
/* 61829*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61832*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1LNq16Pseudo), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 4, 5, 1, 6, 7, 8, 
                    // Src: (st (ARMvgetlaneu:{ *:[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)
/* 61843*/        0, /*End of Scope*/
/* 61844*/      /*SwitchOpcode*/ 11|128,2/*267*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->62115
/* 61848*/        OPC_RecordChild0, // #1 = $Vd
/* 61849*/        OPC_Scope, 43, /*->61894*/ // 6 children in Scope
/* 61851*/          OPC_CheckChild0Type, MVT::v2i32,
/* 61853*/          OPC_RecordChild1, // #2 = $lane
/* 61854*/          OPC_MoveChild1,
/* 61855*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61858*/          OPC_MoveParent,
/* 61859*/          OPC_CheckType, MVT::i32,
/* 61861*/          OPC_MoveParent,
/* 61862*/          OPC_RecordChild2, // #3 = $Rn
/* 61863*/          OPC_CheckChild2Type, MVT::i32,
/* 61865*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 61867*/          OPC_CheckPredicate, 45, // Predicate_store
/* 61869*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61871*/          OPC_CheckComplexPat, /*CP*/14, /*#*/3, // SelectAddrMode6:$Rn #4 #5
/* 61874*/          OPC_EmitMergeInputChains1_0,
/* 61875*/          OPC_EmitConvertToTarget, 2,
/* 61877*/          OPC_EmitInteger, MVT::i32, 14, 
/* 61880*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61883*/          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)
/* 61894*/        /*Scope*/ 43, /*->61938*/
/* 61895*/          OPC_CheckChild0Type, MVT::v4i32,
/* 61897*/          OPC_RecordChild1, // #2 = $lane
/* 61898*/          OPC_MoveChild1,
/* 61899*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61902*/          OPC_MoveParent,
/* 61903*/          OPC_CheckType, MVT::i32,
/* 61905*/          OPC_MoveParent,
/* 61906*/          OPC_RecordChild2, // #3 = $addr
/* 61907*/          OPC_CheckChild2Type, MVT::i32,
/* 61909*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 61911*/          OPC_CheckPredicate, 45, // Predicate_store
/* 61913*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61915*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$addr #4 #5
/* 61918*/          OPC_EmitMergeInputChains1_0,
/* 61919*/          OPC_EmitConvertToTarget, 2,
/* 61921*/          OPC_EmitInteger, MVT::i32, 14, 
/* 61924*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61927*/          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)
/* 61938*/        /*Scope*/ 43, /*->61982*/
/* 61939*/          OPC_CheckChild0Type, MVT::v2f32,
/* 61941*/          OPC_RecordChild1, // #2 = $lane
/* 61942*/          OPC_MoveChild1,
/* 61943*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61946*/          OPC_MoveParent,
/* 61947*/          OPC_CheckType, MVT::f32,
/* 61949*/          OPC_MoveParent,
/* 61950*/          OPC_RecordChild2, // #3 = $addr
/* 61951*/          OPC_CheckChild2Type, MVT::i32,
/* 61953*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 61955*/          OPC_CheckPredicate, 45, // Predicate_store
/* 61957*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 61959*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$addr #4 #5
/* 61962*/          OPC_EmitMergeInputChains1_0,
/* 61963*/          OPC_EmitConvertToTarget, 2,
/* 61965*/          OPC_EmitInteger, MVT::i32, 14, 
/* 61968*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 61971*/          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)
/* 61982*/        /*Scope*/ 43, /*->62026*/
/* 61983*/          OPC_CheckChild0Type, MVT::v4f32,
/* 61985*/          OPC_RecordChild1, // #2 = $lane
/* 61986*/          OPC_MoveChild1,
/* 61987*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 61990*/          OPC_MoveParent,
/* 61991*/          OPC_CheckType, MVT::f32,
/* 61993*/          OPC_MoveParent,
/* 61994*/          OPC_RecordChild2, // #3 = $addr
/* 61995*/          OPC_CheckChild2Type, MVT::i32,
/* 61997*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 61999*/          OPC_CheckPredicate, 45, // Predicate_store
/* 62001*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 62003*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$addr #4 #5
/* 62006*/          OPC_EmitMergeInputChains1_0,
/* 62007*/          OPC_EmitConvertToTarget, 2,
/* 62009*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62012*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62015*/          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)
/* 62026*/        /*Scope*/ 43, /*->62070*/
/* 62027*/          OPC_CheckChild0Type, MVT::v4f16,
/* 62029*/          OPC_RecordChild1, // #2 = $lane
/* 62030*/          OPC_MoveChild1,
/* 62031*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 62034*/          OPC_MoveParent,
/* 62035*/          OPC_CheckType, MVT::f16,
/* 62037*/          OPC_MoveParent,
/* 62038*/          OPC_RecordChild2, // #3 = $addr
/* 62039*/          OPC_CheckChild2Type, MVT::i32,
/* 62041*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 62043*/          OPC_CheckPredicate, 45, // Predicate_store
/* 62045*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 62047*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$addr #4 #5
/* 62050*/          OPC_EmitMergeInputChains1_0,
/* 62051*/          OPC_EmitConvertToTarget, 2,
/* 62053*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62056*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62059*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 4, 5, 1, 6, 7, 8, 
                    // Src: (st (extractelt:{ *:[f16] } DPR:{ *:[v4f16] }:$src, (imm:{ *:[iPTR] }):$lane), addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 19
                    // Dst: (VST1LNd16 addrmode6:{ *:[i32] }:$addr, DPR:{ *:[v4f16] }:$src, (imm:{ *:[i32] }):$lane)
/* 62070*/        /*Scope*/ 43, /*->62114*/
/* 62071*/          OPC_CheckChild0Type, MVT::v8f16,
/* 62073*/          OPC_RecordChild1, // #2 = $lane
/* 62074*/          OPC_MoveChild1,
/* 62075*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 62078*/          OPC_MoveParent,
/* 62079*/          OPC_CheckType, MVT::f16,
/* 62081*/          OPC_MoveParent,
/* 62082*/          OPC_RecordChild2, // #3 = $addr
/* 62083*/          OPC_CheckChild2Type, MVT::i32,
/* 62085*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 62087*/          OPC_CheckPredicate, 45, // Predicate_store
/* 62089*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 62091*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // SelectAddrMode6:$addr #4 #5
/* 62094*/          OPC_EmitMergeInputChains1_0,
/* 62095*/          OPC_EmitConvertToTarget, 2,
/* 62097*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62100*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62103*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::VST1LNq16Pseudo), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 4, 5, 1, 6, 7, 8, 
                    // Src: (st (extractelt:{ *:[f16] } QPR:{ *:[v8f16] }:$src, (imm:{ *:[iPTR] }):$lane), addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 19
                    // Dst: (VST1LNq16Pseudo addrmode6:{ *:[i32] }:$addr, QPR:{ *:[v8f16] }:$src, (imm:{ *:[i32] }):$lane)
/* 62114*/        0, /*End of Scope*/
/* 62115*/      0, // EndSwitchOpcode
/* 62116*/    /*Scope*/ 28|128,2/*284*/, /*->62402*/
/* 62118*/      OPC_RecordChild1, // #1 = $Rt
/* 62119*/      OPC_CheckChild1Type, MVT::i32,
/* 62121*/      OPC_RecordChild2, // #2 = $shift
/* 62122*/      OPC_Scope, 44|128,1/*172*/, /*->62297*/ // 2 children in Scope
/* 62125*/        OPC_CheckChild2Type, MVT::i32,
/* 62127*/        OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 62129*/        OPC_Scope, 25, /*->62156*/ // 4 children in Scope
/* 62131*/          OPC_CheckPredicate, 45, // Predicate_store
/* 62133*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 62135*/          OPC_CheckComplexPat, /*CP*/19, /*#*/2, // SelectLdStSOReg:$shift #3 #4 #5
/* 62138*/          OPC_EmitMergeInputChains1_0,
/* 62139*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62142*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62145*/          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)
/* 62156*/        /*Scope*/ 56, /*->62213*/
/* 62157*/          OPC_CheckPredicate, 42, // Predicate_truncstore
/* 62159*/          OPC_Scope, 25, /*->62186*/ // 2 children in Scope
/* 62161*/            OPC_CheckPredicate, 44, // Predicate_truncstorei8
/* 62163*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 62165*/            OPC_CheckComplexPat, /*CP*/19, /*#*/2, // SelectLdStSOReg:$shift #3 #4 #5
/* 62168*/            OPC_EmitMergeInputChains1_0,
/* 62169*/            OPC_EmitInteger, MVT::i32, 14, 
/* 62172*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62175*/            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)
/* 62186*/          /*Scope*/ 25, /*->62212*/
/* 62187*/            OPC_CheckPredicate, 39, // Predicate_truncstorei16
/* 62189*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 62191*/            OPC_CheckComplexPat, /*CP*/7, /*#*/2, // SelectAddrMode3:$addr #3 #4 #5
/* 62194*/            OPC_EmitMergeInputChains1_0,
/* 62195*/            OPC_EmitInteger, MVT::i32, 14, 
/* 62198*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62201*/            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)
/* 62212*/          0, /*End of Scope*/
/* 62213*/        /*Scope*/ 25, /*->62239*/
/* 62214*/          OPC_CheckPredicate, 45, // Predicate_store
/* 62216*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 62218*/          OPC_CheckComplexPat, /*CP*/20, /*#*/2, // SelectT2AddrModeSoReg:$addr #3 #4 #5
/* 62221*/          OPC_EmitMergeInputChains1_0,
/* 62222*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62225*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62228*/          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)
/* 62239*/        /*Scope*/ 56, /*->62296*/
/* 62240*/          OPC_CheckPredicate, 42, // Predicate_truncstore
/* 62242*/          OPC_Scope, 25, /*->62269*/ // 2 children in Scope
/* 62244*/            OPC_CheckPredicate, 44, // Predicate_truncstorei8
/* 62246*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 62248*/            OPC_CheckComplexPat, /*CP*/20, /*#*/2, // SelectT2AddrModeSoReg:$addr #3 #4 #5
/* 62251*/            OPC_EmitMergeInputChains1_0,
/* 62252*/            OPC_EmitInteger, MVT::i32, 14, 
/* 62255*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62258*/            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)
/* 62269*/          /*Scope*/ 25, /*->62295*/
/* 62270*/            OPC_CheckPredicate, 39, // Predicate_truncstorei16
/* 62272*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 62274*/            OPC_CheckComplexPat, /*CP*/20, /*#*/2, // SelectT2AddrModeSoReg:$addr #3 #4 #5
/* 62277*/            OPC_EmitMergeInputChains1_0,
/* 62278*/            OPC_EmitInteger, MVT::i32, 14, 
/* 62281*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62284*/            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)
/* 62295*/          0, /*End of Scope*/
/* 62296*/        0, /*End of Scope*/
/* 62297*/      /*Scope*/ 103, /*->62401*/
/* 62298*/        OPC_RecordChild3, // #3 = $offset
/* 62299*/        OPC_CheckChild3Type, MVT::i32,
/* 62301*/        OPC_CheckType, MVT::i32,
/* 62303*/        OPC_Scope, 30, /*->62335*/ // 2 children in Scope
/* 62305*/          OPC_CheckPredicate, 45, // Predicate_istore
/* 62307*/          OPC_CheckPredicate, 43, // Predicate_post_store
/* 62309*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 62311*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$Rn #4
/* 62314*/          OPC_CheckComplexPat, /*CP*/21, /*#*/3, // SelectT2AddrModeImm8Offset:$offset #5
/* 62317*/          OPC_EmitMergeInputChains1_0,
/* 62318*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62321*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62324*/          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)
/* 62335*/        /*Scope*/ 64, /*->62400*/
/* 62336*/          OPC_CheckPredicate, 42, // Predicate_itruncstore
/* 62338*/          OPC_CheckPredicate, 43, // Predicate_post_truncst
/* 62340*/          OPC_Scope, 28, /*->62370*/ // 2 children in Scope
/* 62342*/            OPC_CheckPredicate, 39, // Predicate_post_truncsti16
/* 62344*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 62346*/            OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$Rn #4
/* 62349*/            OPC_CheckComplexPat, /*CP*/21, /*#*/3, // SelectT2AddrModeImm8Offset:$offset #5
/* 62352*/            OPC_EmitMergeInputChains1_0,
/* 62353*/            OPC_EmitInteger, MVT::i32, 14, 
/* 62356*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62359*/            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)
/* 62370*/          /*Scope*/ 28, /*->62399*/
/* 62371*/            OPC_CheckPredicate, 44, // Predicate_post_truncsti8
/* 62373*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 62375*/            OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$Rn #4
/* 62378*/            OPC_CheckComplexPat, /*CP*/21, /*#*/3, // SelectT2AddrModeImm8Offset:$offset #5
/* 62381*/            OPC_EmitMergeInputChains1_0,
/* 62382*/            OPC_EmitInteger, MVT::i32, 14, 
/* 62385*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62388*/            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)
/* 62399*/          0, /*End of Scope*/
/* 62400*/        0, /*End of Scope*/
/* 62401*/      0, /*End of Scope*/
/* 62402*/    /*Scope*/ 91|128,1/*219*/, /*->62623*/
/* 62404*/      OPC_MoveChild1,
/* 62405*/      OPC_SwitchOpcode /*2 cases */, 105, TARGET_VAL(ISD::FP_TO_SINT),// ->62514
/* 62409*/        OPC_RecordChild0, // #1 = $a
/* 62410*/        OPC_CheckType, MVT::i32,
/* 62412*/        OPC_Scope, 49, /*->62463*/ // 2 children in Scope
/* 62414*/          OPC_CheckChild0Type, MVT::f64,
/* 62416*/          OPC_MoveParent,
/* 62417*/          OPC_RecordChild2, // #2 = $ptr
/* 62418*/          OPC_CheckChild2Type, MVT::i32,
/* 62420*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 62422*/          OPC_CheckPredicate, 45, // Predicate_store
/* 62424*/          OPC_CheckPredicate, 46, // Predicate_alignedstore32
/* 62426*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/* 62428*/          OPC_CheckComplexPat, /*CP*/22, /*#*/2, // SelectAddrMode5:$ptr #3 #4
/* 62431*/          OPC_EmitMergeInputChains1_0,
/* 62432*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62435*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62438*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOSIZD), 0|OPFL_Chain,
                        MVT::f32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 62447*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62450*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62453*/          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)
/* 62463*/        /*Scope*/ 49, /*->62513*/
/* 62464*/          OPC_CheckChild0Type, MVT::f32,
/* 62466*/          OPC_MoveParent,
/* 62467*/          OPC_RecordChild2, // #2 = $ptr
/* 62468*/          OPC_CheckChild2Type, MVT::i32,
/* 62470*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 62472*/          OPC_CheckPredicate, 45, // Predicate_store
/* 62474*/          OPC_CheckPredicate, 46, // Predicate_alignedstore32
/* 62476*/          OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/* 62478*/          OPC_CheckComplexPat, /*CP*/22, /*#*/2, // SelectAddrMode5:$ptr #3 #4
/* 62481*/          OPC_EmitMergeInputChains1_0,
/* 62482*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62485*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62488*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOSIZS), 0|OPFL_Chain,
                        MVT::f32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 62497*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62500*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62503*/          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)
/* 62513*/        0, /*End of Scope*/
/* 62514*/      /*SwitchOpcode*/ 105, TARGET_VAL(ISD::FP_TO_UINT),// ->62622
/* 62517*/        OPC_RecordChild0, // #1 = $a
/* 62518*/        OPC_CheckType, MVT::i32,
/* 62520*/        OPC_Scope, 49, /*->62571*/ // 2 children in Scope
/* 62522*/          OPC_CheckChild0Type, MVT::f64,
/* 62524*/          OPC_MoveParent,
/* 62525*/          OPC_RecordChild2, // #2 = $ptr
/* 62526*/          OPC_CheckChild2Type, MVT::i32,
/* 62528*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 62530*/          OPC_CheckPredicate, 45, // Predicate_store
/* 62532*/          OPC_CheckPredicate, 46, // Predicate_alignedstore32
/* 62534*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/* 62536*/          OPC_CheckComplexPat, /*CP*/22, /*#*/2, // SelectAddrMode5:$ptr #3 #4
/* 62539*/          OPC_EmitMergeInputChains1_0,
/* 62540*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62543*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62546*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOUIZD), 0|OPFL_Chain,
                        MVT::f32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 62555*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62558*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62561*/          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)
/* 62571*/        /*Scope*/ 49, /*->62621*/
/* 62572*/          OPC_CheckChild0Type, MVT::f32,
/* 62574*/          OPC_MoveParent,
/* 62575*/          OPC_RecordChild2, // #2 = $ptr
/* 62576*/          OPC_CheckChild2Type, MVT::i32,
/* 62578*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 62580*/          OPC_CheckPredicate, 45, // Predicate_store
/* 62582*/          OPC_CheckPredicate, 46, // Predicate_alignedstore32
/* 62584*/          OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/* 62586*/          OPC_CheckComplexPat, /*CP*/22, /*#*/2, // SelectAddrMode5:$ptr #3 #4
/* 62589*/          OPC_EmitMergeInputChains1_0,
/* 62590*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62593*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62596*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOUIZS), 0|OPFL_Chain,
                        MVT::f32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 62605*/          OPC_EmitInteger, MVT::i32, 14, 
/* 62608*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62611*/          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)
/* 62621*/        0, /*End of Scope*/
/* 62622*/      0, // EndSwitchOpcode
/* 62623*/    /*Scope*/ 26|128,30/*3866*/, /*->66491*/
/* 62625*/      OPC_RecordChild1, // #1 = $Rt
/* 62626*/      OPC_Scope, 16|128,5/*656*/, /*->63285*/ // 11 children in Scope
/* 62629*/        OPC_CheckChild1Type, MVT::i32,
/* 62631*/        OPC_RecordChild2, // #2 = $addr
/* 62632*/        OPC_Scope, 127|128,2/*383*/, /*->63018*/ // 3 children in Scope
/* 62635*/          OPC_CheckChild2Type, MVT::i32,
/* 62637*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 62639*/          OPC_Scope, 24, /*->62665*/ // 6 children in Scope
/* 62641*/            OPC_CheckPredicate, 45, // Predicate_store
/* 62643*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 62645*/            OPC_CheckComplexPat, /*CP*/23, /*#*/2, // SelectAddrModeImm12:$addr #3 #4
/* 62648*/            OPC_EmitMergeInputChains1_0,
/* 62649*/            OPC_EmitInteger, MVT::i32, 14, 
/* 62652*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62655*/            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)
/* 62665*/          /*Scope*/ 26, /*->62692*/
/* 62666*/            OPC_CheckPredicate, 42, // Predicate_truncstore
/* 62668*/            OPC_CheckPredicate, 44, // Predicate_truncstorei8
/* 62670*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 62672*/            OPC_CheckComplexPat, /*CP*/23, /*#*/2, // SelectAddrModeImm12:$addr #3 #4
/* 62675*/            OPC_EmitMergeInputChains1_0,
/* 62676*/            OPC_EmitInteger, MVT::i32, 14, 
/* 62679*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62682*/            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)
/* 62692*/          /*Scope*/ 69, /*->62762*/
/* 62693*/            OPC_CheckPredicate, 45, // Predicate_store
/* 62695*/            OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 62697*/            OPC_Scope, 20, /*->62719*/ // 3 children in Scope
/* 62699*/              OPC_CheckComplexPat, /*CP*/24, /*#*/2, // SelectThumbAddrModeSP:$addr #3 #4
/* 62702*/              OPC_EmitMergeInputChains1_0,
/* 62703*/              OPC_EmitInteger, MVT::i32, 14, 
/* 62706*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62709*/              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)
/* 62719*/            /*Scope*/ 20, /*->62740*/
/* 62720*/              OPC_CheckComplexPat, /*CP*/25, /*#*/2, // SelectThumbAddrModeImm5S4:$addr #3 #4
/* 62723*/              OPC_EmitMergeInputChains1_0,
/* 62724*/              OPC_EmitInteger, MVT::i32, 14, 
/* 62727*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62730*/              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)
/* 62740*/            /*Scope*/ 20, /*->62761*/
/* 62741*/              OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectThumbAddrModeRR:$addr #3 #4
/* 62744*/              OPC_EmitMergeInputChains1_0,
/* 62745*/              OPC_EmitInteger, MVT::i32, 14, 
/* 62748*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62751*/              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)
/* 62761*/            0, /*End of Scope*/
/* 62762*/          /*Scope*/ 102, /*->62865*/
/* 62763*/            OPC_CheckPredicate, 42, // Predicate_truncstore
/* 62765*/            OPC_Scope, 48, /*->62815*/ // 2 children in Scope
/* 62767*/              OPC_CheckPredicate, 44, // Predicate_truncstorei8
/* 62769*/              OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 62771*/              OPC_Scope, 20, /*->62793*/ // 2 children in Scope
/* 62773*/                OPC_CheckComplexPat, /*CP*/26, /*#*/2, // SelectThumbAddrModeImm5S1:$addr #3 #4
/* 62776*/                OPC_EmitMergeInputChains1_0,
/* 62777*/                OPC_EmitInteger, MVT::i32, 14, 
/* 62780*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62783*/                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)
/* 62793*/              /*Scope*/ 20, /*->62814*/
/* 62794*/                OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectThumbAddrModeRR:$addr #3 #4
/* 62797*/                OPC_EmitMergeInputChains1_0,
/* 62798*/                OPC_EmitInteger, MVT::i32, 14, 
/* 62801*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62804*/                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)
/* 62814*/              0, /*End of Scope*/
/* 62815*/            /*Scope*/ 48, /*->62864*/
/* 62816*/              OPC_CheckPredicate, 39, // Predicate_truncstorei16
/* 62818*/              OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 62820*/              OPC_Scope, 20, /*->62842*/ // 2 children in Scope
/* 62822*/                OPC_CheckComplexPat, /*CP*/8, /*#*/2, // SelectThumbAddrModeImm5S2:$addr #3 #4
/* 62825*/                OPC_EmitMergeInputChains1_0,
/* 62826*/                OPC_EmitInteger, MVT::i32, 14, 
/* 62829*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62832*/                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)
/* 62842*/              /*Scope*/ 20, /*->62863*/
/* 62843*/                OPC_CheckComplexPat, /*CP*/9, /*#*/2, // SelectThumbAddrModeRR:$addr #3 #4
/* 62846*/                OPC_EmitMergeInputChains1_0,
/* 62847*/                OPC_EmitInteger, MVT::i32, 14, 
/* 62850*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62853*/                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)
/* 62863*/              0, /*End of Scope*/
/* 62864*/            0, /*End of Scope*/
/* 62865*/          /*Scope*/ 48, /*->62914*/
/* 62866*/            OPC_CheckPredicate, 45, // Predicate_store
/* 62868*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 62870*/            OPC_Scope, 20, /*->62892*/ // 2 children in Scope
/* 62872*/              OPC_CheckComplexPat, /*CP*/27, /*#*/2, // SelectT2AddrModeImm12:$addr #3 #4
/* 62875*/              OPC_EmitMergeInputChains1_0,
/* 62876*/              OPC_EmitInteger, MVT::i32, 14, 
/* 62879*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62882*/              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)
/* 62892*/            /*Scope*/ 20, /*->62913*/
/* 62893*/              OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectT2AddrModeImm8:$addr #3 #4
/* 62896*/              OPC_EmitMergeInputChains1_0,
/* 62897*/              OPC_EmitInteger, MVT::i32, 14, 
/* 62900*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62903*/              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)
/* 62913*/            0, /*End of Scope*/
/* 62914*/          /*Scope*/ 102, /*->63017*/
/* 62915*/            OPC_CheckPredicate, 42, // Predicate_truncstore
/* 62917*/            OPC_Scope, 48, /*->62967*/ // 2 children in Scope
/* 62919*/              OPC_CheckPredicate, 44, // Predicate_truncstorei8
/* 62921*/              OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 62923*/              OPC_Scope, 20, /*->62945*/ // 2 children in Scope
/* 62925*/                OPC_CheckComplexPat, /*CP*/27, /*#*/2, // SelectT2AddrModeImm12:$addr #3 #4
/* 62928*/                OPC_EmitMergeInputChains1_0,
/* 62929*/                OPC_EmitInteger, MVT::i32, 14, 
/* 62932*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62935*/                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)
/* 62945*/              /*Scope*/ 20, /*->62966*/
/* 62946*/                OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectT2AddrModeImm8:$addr #3 #4
/* 62949*/                OPC_EmitMergeInputChains1_0,
/* 62950*/                OPC_EmitInteger, MVT::i32, 14, 
/* 62953*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62956*/                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)
/* 62966*/              0, /*End of Scope*/
/* 62967*/            /*Scope*/ 48, /*->63016*/
/* 62968*/              OPC_CheckPredicate, 39, // Predicate_truncstorei16
/* 62970*/              OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 62972*/              OPC_Scope, 20, /*->62994*/ // 2 children in Scope
/* 62974*/                OPC_CheckComplexPat, /*CP*/27, /*#*/2, // SelectT2AddrModeImm12:$addr #3 #4
/* 62977*/                OPC_EmitMergeInputChains1_0,
/* 62978*/                OPC_EmitInteger, MVT::i32, 14, 
/* 62981*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 62984*/                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)
/* 62994*/              /*Scope*/ 20, /*->63015*/
/* 62995*/                OPC_CheckComplexPat, /*CP*/28, /*#*/2, // SelectT2AddrModeImm8:$addr #3 #4
/* 62998*/                OPC_EmitMergeInputChains1_0,
/* 62999*/                OPC_EmitInteger, MVT::i32, 14, 
/* 63002*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63005*/                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)
/* 63015*/              0, /*End of Scope*/
/* 63016*/            0, /*End of Scope*/
/* 63017*/          0, /*End of Scope*/
/* 63018*/        /*Scope*/ 108|128,1/*236*/, /*->63256*/
/* 63020*/          OPC_RecordChild3, // #3 = $offset
/* 63021*/          OPC_CheckChild3Type, MVT::i32,
/* 63023*/          OPC_CheckType, MVT::i32,
/* 63025*/          OPC_Scope, 54, /*->63081*/ // 4 children in Scope
/* 63027*/            OPC_CheckPredicate, 45, // Predicate_istore
/* 63029*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 63031*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 63033*/            OPC_Scope, 22, /*->63057*/ // 2 children in Scope
/* 63035*/              OPC_CheckComplexPat, /*CP*/17, /*#*/3, // SelectAddrMode2OffsetImm:$offset #4 #5
/* 63038*/              OPC_EmitMergeInputChains1_0,
/* 63039*/              OPC_EmitInteger, MVT::i32, 14, 
/* 63042*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63045*/              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)
/* 63057*/            /*Scope*/ 22, /*->63080*/
/* 63058*/              OPC_CheckComplexPat, /*CP*/16, /*#*/3, // SelectAddrMode2OffsetReg:$offset #4 #5
/* 63061*/              OPC_EmitMergeInputChains1_0,
/* 63062*/              OPC_EmitInteger, MVT::i32, 14, 
/* 63065*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63068*/              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)
/* 63080*/            0, /*End of Scope*/
/* 63081*/          /*Scope*/ 86, /*->63168*/
/* 63082*/            OPC_CheckPredicate, 42, // Predicate_itruncstore
/* 63084*/            OPC_CheckPredicate, 47, // Predicate_pre_truncst
/* 63086*/            OPC_Scope, 52, /*->63140*/ // 2 children in Scope
/* 63088*/              OPC_CheckPredicate, 44, // Predicate_pre_truncsti8
/* 63090*/              OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 63092*/              OPC_Scope, 22, /*->63116*/ // 2 children in Scope
/* 63094*/                OPC_CheckComplexPat, /*CP*/17, /*#*/3, // SelectAddrMode2OffsetImm:$offset #4 #5
/* 63097*/                OPC_EmitMergeInputChains1_0,
/* 63098*/                OPC_EmitInteger, MVT::i32, 14, 
/* 63101*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63104*/                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)
/* 63116*/              /*Scope*/ 22, /*->63139*/
/* 63117*/                OPC_CheckComplexPat, /*CP*/16, /*#*/3, // SelectAddrMode2OffsetReg:$offset #4 #5
/* 63120*/                OPC_EmitMergeInputChains1_0,
/* 63121*/                OPC_EmitInteger, MVT::i32, 14, 
/* 63124*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63127*/                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)
/* 63139*/              0, /*End of Scope*/
/* 63140*/            /*Scope*/ 26, /*->63167*/
/* 63141*/              OPC_CheckPredicate, 39, // Predicate_pre_truncsti16
/* 63143*/              OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 63145*/              OPC_CheckComplexPat, /*CP*/18, /*#*/3, // SelectAddrMode3Offset:$offset #4 #5
/* 63148*/              OPC_EmitMergeInputChains1_0,
/* 63149*/              OPC_EmitInteger, MVT::i32, 14, 
/* 63152*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63155*/              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)
/* 63167*/            0, /*End of Scope*/
/* 63168*/          /*Scope*/ 27, /*->63196*/
/* 63169*/            OPC_CheckPredicate, 45, // Predicate_istore
/* 63171*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 63173*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 63175*/            OPC_CheckComplexPat, /*CP*/21, /*#*/3, // SelectT2AddrModeImm8Offset:$offset #4
/* 63178*/            OPC_EmitMergeInputChains1_0,
/* 63179*/            OPC_EmitInteger, MVT::i32, 14, 
/* 63182*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63185*/            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)
/* 63196*/          /*Scope*/ 58, /*->63255*/
/* 63197*/            OPC_CheckPredicate, 42, // Predicate_itruncstore
/* 63199*/            OPC_CheckPredicate, 47, // Predicate_pre_truncst
/* 63201*/            OPC_Scope, 25, /*->63228*/ // 2 children in Scope
/* 63203*/              OPC_CheckPredicate, 44, // Predicate_pre_truncsti8
/* 63205*/              OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 63207*/              OPC_CheckComplexPat, /*CP*/21, /*#*/3, // SelectT2AddrModeImm8Offset:$offset #4
/* 63210*/              OPC_EmitMergeInputChains1_0,
/* 63211*/              OPC_EmitInteger, MVT::i32, 14, 
/* 63214*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63217*/              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)
/* 63228*/            /*Scope*/ 25, /*->63254*/
/* 63229*/              OPC_CheckPredicate, 39, // Predicate_pre_truncsti16
/* 63231*/              OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 63233*/              OPC_CheckComplexPat, /*CP*/21, /*#*/3, // SelectT2AddrModeImm8Offset:$offset #4
/* 63236*/              OPC_EmitMergeInputChains1_0,
/* 63237*/              OPC_EmitInteger, MVT::i32, 14, 
/* 63240*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63243*/              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)
/* 63254*/            0, /*End of Scope*/
/* 63255*/          0, /*End of Scope*/
/* 63256*/        /*Scope*/ 27, /*->63284*/
/* 63257*/          OPC_CheckChild3Integer, 4, 
/* 63259*/          OPC_CheckPredicate, 45, // Predicate_istore
/* 63261*/          OPC_CheckPredicate, 43, // Predicate_post_store
/* 63263*/          OPC_CheckType, MVT::i32,
/* 63265*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 63267*/          OPC_EmitMergeInputChains1_0,
/* 63268*/          OPC_EmitInteger, MVT::i32, 14, 
/* 63271*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63274*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::tSTMIA_UPD), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 4/*#Ops*/, 2, 3, 4, 1, 
                    // Src: (ist:{ *:[i32] } tGPR:{ *:[i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, 4:{ *:[iPTR] })<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 9
                    // Dst: (tSTMIA_UPD:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rt)
/* 63284*/        0, /*End of Scope*/
/* 63285*/      /*Scope*/ 111, /*->63397*/
/* 63286*/        OPC_CheckChild1Type, MVT::f64,
/* 63288*/        OPC_RecordChild2, // #2 = $addr
/* 63289*/        OPC_CheckChild2Type, MVT::i32,
/* 63291*/        OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 63293*/        OPC_CheckPredicate, 45, // Predicate_store
/* 63295*/        OPC_Scope, 24, /*->63321*/ // 4 children in Scope
/* 63297*/          OPC_CheckPredicate, 46, // Predicate_alignedstore32
/* 63299*/          OPC_CheckPatternPredicate, 36, // (Subtarget->hasFPRegs())
/* 63301*/          OPC_CheckComplexPat, /*CP*/22, /*#*/2, // SelectAddrMode5:$addr #3 #4
/* 63304*/          OPC_EmitMergeInputChains1_0,
/* 63305*/          OPC_EmitInteger, MVT::i32, 14, 
/* 63308*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63311*/          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)
/* 63321*/        /*Scope*/ 24, /*->63346*/
/* 63322*/          OPC_CheckPredicate, 48, // Predicate_hword_alignedstore
/* 63324*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 63326*/          OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 63329*/          OPC_EmitMergeInputChains1_0,
/* 63330*/          OPC_EmitInteger, MVT::i32, 14, 
/* 63333*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63336*/          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)
/* 63346*/        /*Scope*/ 24, /*->63371*/
/* 63347*/          OPC_CheckPredicate, 49, // Predicate_byte_alignedstore
/* 63349*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 63351*/          OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 63354*/          OPC_EmitMergeInputChains1_0,
/* 63355*/          OPC_EmitInteger, MVT::i32, 14, 
/* 63358*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63361*/          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)
/* 63371*/        /*Scope*/ 24, /*->63396*/
/* 63372*/          OPC_CheckPredicate, 50, // Predicate_non_word_alignedstore
/* 63374*/          OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 63376*/          OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 63379*/          OPC_EmitMergeInputChains1_0,
/* 63380*/          OPC_EmitInteger, MVT::i32, 14, 
/* 63383*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63386*/          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)
/* 63396*/        0, /*End of Scope*/
/* 63397*/      /*Scope*/ 33, /*->63431*/
/* 63398*/        OPC_CheckChild1Type, MVT::f32,
/* 63400*/        OPC_RecordChild2, // #2 = $addr
/* 63401*/        OPC_CheckChild2Type, MVT::i32,
/* 63403*/        OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 63405*/        OPC_CheckPredicate, 45, // Predicate_store
/* 63407*/        OPC_CheckPredicate, 46, // Predicate_alignedstore32
/* 63409*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasFPRegs())
/* 63411*/        OPC_CheckComplexPat, /*CP*/22, /*#*/2, // SelectAddrMode5:$addr #3 #4
/* 63414*/        OPC_EmitMergeInputChains1_0,
/* 63415*/        OPC_EmitInteger, MVT::i32, 14, 
/* 63418*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63421*/        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)
/* 63431*/      /*Scope*/ 33, /*->63465*/
/* 63432*/        OPC_CheckChild1Type, MVT::f16,
/* 63434*/        OPC_RecordChild2, // #2 = $addr
/* 63435*/        OPC_CheckChild2Type, MVT::i32,
/* 63437*/        OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 63439*/        OPC_CheckPredicate, 45, // Predicate_store
/* 63441*/        OPC_CheckPredicate, 51, // Predicate_alignedstore16
/* 63443*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasFPRegs16())
/* 63445*/        OPC_CheckComplexPat, /*CP*/29, /*#*/2, // SelectAddrMode5FP16:$addr #3 #4
/* 63448*/        OPC_EmitMergeInputChains1_0,
/* 63449*/        OPC_EmitInteger, MVT::i32, 14, 
/* 63452*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63455*/        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)
/* 63465*/      /*Scope*/ 6|128,4/*518*/, /*->63985*/
/* 63467*/        OPC_CheckChild1Type, MVT::v2f64,
/* 63469*/        OPC_RecordChild2, // #2 = $addr
/* 63470*/        OPC_Scope, 53|128,2/*309*/, /*->63782*/ // 3 children in Scope
/* 63473*/          OPC_CheckChild2Type, MVT::i32,
/* 63475*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 63477*/          OPC_CheckPredicate, 45, // Predicate_store
/* 63479*/          OPC_Scope, 24, /*->63505*/ // 9 children in Scope
/* 63481*/            OPC_CheckPredicate, 52, // Predicate_dword_alignedstore
/* 63483*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 63485*/            OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 63488*/            OPC_EmitMergeInputChains1_0,
/* 63489*/            OPC_EmitInteger, MVT::i32, 14, 
/* 63492*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63495*/            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)
/* 63505*/          /*Scope*/ 24, /*->63530*/
/* 63506*/            OPC_CheckPredicate, 53, // Predicate_word_alignedstore
/* 63508*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 63510*/            OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 63513*/            OPC_EmitMergeInputChains1_0,
/* 63514*/            OPC_EmitInteger, MVT::i32, 14, 
/* 63517*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63520*/            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)
/* 63530*/          /*Scope*/ 24, /*->63555*/
/* 63531*/            OPC_CheckPredicate, 48, // Predicate_hword_alignedstore
/* 63533*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 63535*/            OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 63538*/            OPC_EmitMergeInputChains1_0,
/* 63539*/            OPC_EmitInteger, MVT::i32, 14, 
/* 63542*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63545*/            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)
/* 63555*/          /*Scope*/ 50, /*->63606*/
/* 63556*/            OPC_CheckPredicate, 49, // Predicate_byte_alignedstore
/* 63558*/            OPC_Scope, 22, /*->63582*/ // 2 children in Scope
/* 63560*/              OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 63562*/              OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 63565*/              OPC_EmitMergeInputChains1_0,
/* 63566*/              OPC_EmitInteger, MVT::i32, 14, 
/* 63569*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63572*/              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)
/* 63582*/            /*Scope*/ 22, /*->63605*/
/* 63583*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 63585*/              OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #3 #4
/* 63588*/              OPC_EmitMergeInputChains1_0,
/* 63589*/              OPC_EmitInteger, MVT::i32, 0, 
/* 63592*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63595*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st MQPR:{ *:[v2f64] }:$val, anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_byte_alignedstore>> - Complexity = 13
                        // Dst: (MVE_VSTRBU8 MQPR:{ *:[v2f64] }:$val, anonymous_7325:{ *:[i32] }:$addr)
/* 63605*/            0, /*End of Scope*/
/* 63606*/          /*Scope*/ 24, /*->63631*/
/* 63607*/            OPC_CheckPredicate, 48, // Predicate_hword_alignedstore
/* 63609*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 63611*/            OPC_CheckComplexPat, /*CP*/31, /*#*/2, // SelectT2AddrModeImm7<1>:$addr #3 #4
/* 63614*/            OPC_EmitMergeInputChains1_0,
/* 63615*/            OPC_EmitInteger, MVT::i32, 0, 
/* 63618*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63621*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v2f64] }:$val, anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_hword_alignedstore>> - Complexity = 13
                      // Dst: (MVE_VSTRHU16 MQPR:{ *:[v2f64] }:$val, anonymous_7327:{ *:[i32] }:$addr)
/* 63631*/          /*Scope*/ 24, /*->63656*/
/* 63632*/            OPC_CheckPredicate, 46, // Predicate_alignedstore32
/* 63634*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 63636*/            OPC_CheckComplexPat, /*CP*/32, /*#*/2, // SelectT2AddrModeImm7<2>:$addr #3 #4
/* 63639*/            OPC_EmitMergeInputChains1_0,
/* 63640*/            OPC_EmitInteger, MVT::i32, 0, 
/* 63643*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63646*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v2f64] }:$val, anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 13
                      // Dst: (MVE_VSTRWU32 MQPR:{ *:[v2f64] }:$val, anonymous_7329:{ *:[i32] }:$addr)
/* 63656*/          /*Scope*/ 39, /*->63696*/
/* 63657*/            OPC_CheckPredicate, 49, // Predicate_byte_alignedstore
/* 63659*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 63661*/            OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 63664*/            OPC_EmitMergeInputChains1_0,
/* 63665*/            OPC_EmitInteger, MVT::i32, 14, 
/* 63668*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63671*/            OPC_EmitNode1, TARGET_VAL(ARM::VREV64q8), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 63680*/            OPC_EmitInteger, MVT::i32, 14, 
/* 63683*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63686*/            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))
/* 63696*/          /*Scope*/ 39, /*->63736*/
/* 63697*/            OPC_CheckPredicate, 48, // Predicate_hword_alignedstore
/* 63699*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 63701*/            OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #3 #4
/* 63704*/            OPC_EmitMergeInputChains1_0,
/* 63705*/            OPC_EmitInteger, MVT::i32, 14, 
/* 63708*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63711*/            OPC_EmitNode1, TARGET_VAL(ARM::VREV64q16), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/* 63720*/            OPC_EmitInteger, MVT::i32, 14, 
/* 63723*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63726*/            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))
/* 63736*/          /*Scope*/ 44, /*->63781*/
/* 63737*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 63739*/            OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #3 #4
/* 63742*/            OPC_EmitMergeInputChains1_0,
/* 63743*/            OPC_EmitInteger, MVT::i32, 0, 
/* 63746*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63749*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #7
/* 63755*/            OPC_EmitNode1, TARGET_VAL(ARM::MVE_VREV64_8), 0,
                          MVT::v16i8, 4/*#Ops*/, 1, 5, 6, 7,  // Results = #8
/* 63765*/            OPC_EmitInteger, MVT::i32, 0, 
/* 63768*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63771*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 9, 10, 
                      // Src: (st MQPR:{ *:[v2f64] }:$val, anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                      // Dst: (MVE_VSTRBU8 (MVE_VREV64_8:{ *:[v16i8] } MQPR:{ *:[v2f64] }:$val), anonymous_7325:{ *:[i32] }:$addr)
/* 63781*/          0, /*End of Scope*/
/* 63782*/        /*Scope*/ 45|128,1/*173*/, /*->63957*/
/* 63784*/          OPC_RecordChild3, // #3 = $addr
/* 63785*/          OPC_CheckChild3Type, MVT::i32,
/* 63787*/          OPC_CheckPredicate, 45, // Predicate_istore
/* 63789*/          OPC_CheckType, MVT::i32,
/* 63791*/          OPC_Scope, 25, /*->63818*/ // 6 children in Scope
/* 63793*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 63795*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 63797*/            OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 63800*/            OPC_EmitMergeInputChains1_0,
/* 63801*/            OPC_EmitInteger, MVT::i32, 0, 
/* 63804*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63807*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v2f64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRBU8_pre:{ *:[i32] } MQPR:{ *:[v2f64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 63818*/          /*Scope*/ 25, /*->63844*/
/* 63819*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 63821*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 63823*/            OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 63826*/            OPC_EmitMergeInputChains1_0,
/* 63827*/            OPC_EmitInteger, MVT::i32, 0, 
/* 63830*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63833*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v2f64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRBU8_post:{ *:[i32] } MQPR:{ *:[v2f64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 63844*/          /*Scope*/ 27, /*->63872*/
/* 63845*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 63847*/            OPC_CheckPredicate, 51, // Predicate_aligned16_pre_store
/* 63849*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 63851*/            OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 63854*/            OPC_EmitMergeInputChains1_0,
/* 63855*/            OPC_EmitInteger, MVT::i32, 0, 
/* 63858*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63861*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v2f64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned16_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRHU16_pre:{ *:[i32] } MQPR:{ *:[v2f64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 63872*/          /*Scope*/ 27, /*->63900*/
/* 63873*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 63875*/            OPC_CheckPredicate, 51, // Predicate_aligned16_post_store
/* 63877*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 63879*/            OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 63882*/            OPC_EmitMergeInputChains1_0,
/* 63883*/            OPC_EmitInteger, MVT::i32, 0, 
/* 63886*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63889*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v2f64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned16_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRHU16_post:{ *:[i32] } MQPR:{ *:[v2f64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 63900*/          /*Scope*/ 27, /*->63928*/
/* 63901*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 63903*/            OPC_CheckPredicate, 46, // Predicate_aligned32_pre_store
/* 63905*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 63907*/            OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 63910*/            OPC_EmitMergeInputChains1_0,
/* 63911*/            OPC_EmitInteger, MVT::i32, 0, 
/* 63914*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63917*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v2f64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned32_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRWU32_pre:{ *:[i32] } MQPR:{ *:[v2f64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 63928*/          /*Scope*/ 27, /*->63956*/
/* 63929*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 63931*/            OPC_CheckPredicate, 46, // Predicate_aligned32_post_store
/* 63933*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 63935*/            OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 63938*/            OPC_EmitMergeInputChains1_0,
/* 63939*/            OPC_EmitInteger, MVT::i32, 0, 
/* 63942*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63945*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v2f64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned32_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRWU32_post:{ *:[i32] } MQPR:{ *:[v2f64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 63956*/          0, /*End of Scope*/
/* 63957*/        /*Scope*/ 26, /*->63984*/
/* 63958*/          OPC_CheckChild2Type, MVT::i32,
/* 63960*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 63962*/          OPC_CheckPredicate, 45, // Predicate_store
/* 63964*/          OPC_CheckPredicate, 53, // Predicate_word_alignedstore
/* 63966*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasVFP2Base())
/* 63968*/          OPC_EmitMergeInputChains1_0,
/* 63969*/          OPC_EmitInteger, MVT::i32, 14, 
/* 63972*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 63975*/          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)
/* 63984*/        0, /*End of Scope*/
/* 63985*/      /*Scope*/ 83|128,2/*339*/, /*->64326*/
/* 63987*/        OPC_CheckChild1Type, MVT::v16i8,
/* 63989*/        OPC_RecordChild2, // #2 = $addr
/* 63990*/        OPC_Scope, 106, /*->64098*/ // 2 children in Scope
/* 63992*/          OPC_CheckChild2Type, MVT::i32,
/* 63994*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 63996*/          OPC_CheckPredicate, 45, // Predicate_store
/* 63998*/          OPC_Scope, 24, /*->64024*/ // 4 children in Scope
/* 64000*/            OPC_CheckPredicate, 49, // Predicate_byte_alignedstore
/* 64002*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64004*/            OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #3 #4
/* 64007*/            OPC_EmitMergeInputChains1_0,
/* 64008*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64011*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64014*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v16i8] }:$val, anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_byte_alignedstore>> - Complexity = 13
                      // Dst: (MVE_VSTRBU8 MQPR:{ *:[v16i8] }:$val, anonymous_7325:{ *:[i32] }:$addr)
/* 64024*/          /*Scope*/ 24, /*->64049*/
/* 64025*/            OPC_CheckPredicate, 48, // Predicate_hword_alignedstore
/* 64027*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64029*/            OPC_CheckComplexPat, /*CP*/31, /*#*/2, // SelectT2AddrModeImm7<1>:$addr #3 #4
/* 64032*/            OPC_EmitMergeInputChains1_0,
/* 64033*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64036*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64039*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v16i8] }:$val, anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_hword_alignedstore>> - Complexity = 13
                      // Dst: (MVE_VSTRHU16 MQPR:{ *:[v16i8] }:$val, anonymous_7327:{ *:[i32] }:$addr)
/* 64049*/          /*Scope*/ 24, /*->64074*/
/* 64050*/            OPC_CheckPredicate, 46, // Predicate_alignedstore32
/* 64052*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64054*/            OPC_CheckComplexPat, /*CP*/32, /*#*/2, // SelectT2AddrModeImm7<2>:$addr #3 #4
/* 64057*/            OPC_EmitMergeInputChains1_0,
/* 64058*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64061*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64064*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v16i8] }:$val, anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 13
                      // Dst: (MVE_VSTRWU32 MQPR:{ *:[v16i8] }:$val, anonymous_7329:{ *:[i32] }:$addr)
/* 64074*/          /*Scope*/ 22, /*->64097*/
/* 64075*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 64077*/            OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #3 #4
/* 64080*/            OPC_EmitMergeInputChains1_0,
/* 64081*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64084*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64087*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v16i8] }:$val, anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                      // Dst: (MVE_VSTRBU8 MQPR:{ *:[v16i8] }:$val, anonymous_7325:{ *:[i32] }:$addr)
/* 64097*/          0, /*End of Scope*/
/* 64098*/        /*Scope*/ 97|128,1/*225*/, /*->64325*/
/* 64100*/          OPC_RecordChild3, // #3 = $addr
/* 64101*/          OPC_CheckChild3Type, MVT::i32,
/* 64103*/          OPC_CheckPredicate, 45, // Predicate_istore
/* 64105*/          OPC_CheckType, MVT::i32,
/* 64107*/          OPC_Scope, 25, /*->64134*/ // 8 children in Scope
/* 64109*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 64111*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64113*/            OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 64116*/            OPC_EmitMergeInputChains1_0,
/* 64117*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64120*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64123*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRBU8_pre:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 64134*/          /*Scope*/ 25, /*->64160*/
/* 64135*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 64137*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64139*/            OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 64142*/            OPC_EmitMergeInputChains1_0,
/* 64143*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64146*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64149*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRBU8_post:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 64160*/          /*Scope*/ 27, /*->64188*/
/* 64161*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 64163*/            OPC_CheckPredicate, 51, // Predicate_aligned16_pre_store
/* 64165*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64167*/            OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 64170*/            OPC_EmitMergeInputChains1_0,
/* 64171*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64174*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64177*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned16_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRHU16_pre:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 64188*/          /*Scope*/ 27, /*->64216*/
/* 64189*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 64191*/            OPC_CheckPredicate, 51, // Predicate_aligned16_post_store
/* 64193*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64195*/            OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 64198*/            OPC_EmitMergeInputChains1_0,
/* 64199*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64202*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64205*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned16_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRHU16_post:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 64216*/          /*Scope*/ 27, /*->64244*/
/* 64217*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 64219*/            OPC_CheckPredicate, 46, // Predicate_aligned32_pre_store
/* 64221*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64223*/            OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 64226*/            OPC_EmitMergeInputChains1_0,
/* 64227*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64230*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64233*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned32_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRWU32_pre:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 64244*/          /*Scope*/ 27, /*->64272*/
/* 64245*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 64247*/            OPC_CheckPredicate, 46, // Predicate_aligned32_post_store
/* 64249*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64251*/            OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 64254*/            OPC_EmitMergeInputChains1_0,
/* 64255*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64258*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64261*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned32_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRWU32_post:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 64272*/          /*Scope*/ 25, /*->64298*/
/* 64273*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 64275*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 64277*/            OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 64280*/            OPC_EmitMergeInputChains1_0,
/* 64281*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64284*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64287*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRBU8_pre:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 64298*/          /*Scope*/ 25, /*->64324*/
/* 64299*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 64301*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 64303*/            OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 64306*/            OPC_EmitMergeInputChains1_0,
/* 64307*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64310*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64313*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRBU8_post:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 64324*/          0, /*End of Scope*/
/* 64325*/        0, /*End of Scope*/
/* 64326*/      /*Scope*/ 104|128,3/*488*/, /*->64816*/
/* 64328*/        OPC_CheckChild1Type, MVT::v8i16,
/* 64330*/        OPC_RecordChild2, // #2 = $addr
/* 64331*/        OPC_Scope, 57|128,1/*185*/, /*->64519*/ // 2 children in Scope
/* 64334*/          OPC_CheckChild2Type, MVT::i32,
/* 64336*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 64338*/          OPC_Scope, 104, /*->64444*/ // 3 children in Scope
/* 64340*/            OPC_CheckPredicate, 45, // Predicate_store
/* 64342*/            OPC_Scope, 24, /*->64368*/ // 4 children in Scope
/* 64344*/              OPC_CheckPredicate, 49, // Predicate_byte_alignedstore
/* 64346*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64348*/              OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #3 #4
/* 64351*/              OPC_EmitMergeInputChains1_0,
/* 64352*/              OPC_EmitInteger, MVT::i32, 0, 
/* 64355*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64358*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st MQPR:{ *:[v8i16] }:$val, anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_byte_alignedstore>> - Complexity = 13
                        // Dst: (MVE_VSTRBU8 MQPR:{ *:[v8i16] }:$val, anonymous_7325:{ *:[i32] }:$addr)
/* 64368*/            /*Scope*/ 24, /*->64393*/
/* 64369*/              OPC_CheckPredicate, 48, // Predicate_hword_alignedstore
/* 64371*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64373*/              OPC_CheckComplexPat, /*CP*/31, /*#*/2, // SelectT2AddrModeImm7<1>:$addr #3 #4
/* 64376*/              OPC_EmitMergeInputChains1_0,
/* 64377*/              OPC_EmitInteger, MVT::i32, 0, 
/* 64380*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64383*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st MQPR:{ *:[v8i16] }:$val, anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_hword_alignedstore>> - Complexity = 13
                        // Dst: (MVE_VSTRHU16 MQPR:{ *:[v8i16] }:$val, anonymous_7327:{ *:[i32] }:$addr)
/* 64393*/            /*Scope*/ 24, /*->64418*/
/* 64394*/              OPC_CheckPredicate, 46, // Predicate_alignedstore32
/* 64396*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64398*/              OPC_CheckComplexPat, /*CP*/32, /*#*/2, // SelectT2AddrModeImm7<2>:$addr #3 #4
/* 64401*/              OPC_EmitMergeInputChains1_0,
/* 64402*/              OPC_EmitInteger, MVT::i32, 0, 
/* 64405*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64408*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st MQPR:{ *:[v8i16] }:$val, anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 13
                        // Dst: (MVE_VSTRWU32 MQPR:{ *:[v8i16] }:$val, anonymous_7329:{ *:[i32] }:$addr)
/* 64418*/            /*Scope*/ 24, /*->64443*/
/* 64419*/              OPC_CheckPredicate, 51, // Predicate_alignedstore16
/* 64421*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 64423*/              OPC_CheckComplexPat, /*CP*/31, /*#*/2, // SelectT2AddrModeImm7<1>:$addr #3 #4
/* 64426*/              OPC_EmitMergeInputChains1_0,
/* 64427*/              OPC_EmitInteger, MVT::i32, 0, 
/* 64430*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64433*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st MQPR:{ *:[v8i16] }:$val, anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore16>> - Complexity = 13
                        // Dst: (MVE_VSTRHU16 MQPR:{ *:[v8i16] }:$val, anonymous_7327:{ *:[i32] }:$addr)
/* 64443*/            0, /*End of Scope*/
/* 64444*/          /*Scope*/ 26, /*->64471*/
/* 64445*/            OPC_CheckPredicate, 42, // Predicate_truncstore
/* 64447*/            OPC_CheckPredicate, 54, // Predicate_truncstorevi8
/* 64449*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 64451*/            OPC_CheckComplexPat, /*CP*/36, /*#*/2, // SelectTAddrModeImm7<0>:$addr #3 #4
/* 64454*/            OPC_EmitMergeInputChains1_0,
/* 64455*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64458*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64461*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRB16), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v8i16] }:$val, anonymous_7319:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi8>> - Complexity = 13
                      // Dst: (MVE_VSTRB16 MQPR:{ *:[v8i16] }:$val, anonymous_7319:{ *:[i32] }:$addr)
/* 64471*/          /*Scope*/ 46, /*->64518*/
/* 64472*/            OPC_CheckPredicate, 45, // Predicate_store
/* 64474*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 64476*/            OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #3 #4
/* 64479*/            OPC_EmitMergeInputChains1_0,
/* 64480*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64483*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64486*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #7
/* 64492*/            OPC_EmitNode1, TARGET_VAL(ARM::MVE_VREV16_8), 0,
                          MVT::v16i8, 4/*#Ops*/, 1, 5, 6, 7,  // Results = #8
/* 64502*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64505*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64508*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 9, 10, 
                      // Src: (st MQPR:{ *:[v8i16] }:$val, anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                      // Dst: (MVE_VSTRBU8 (MVE_VREV16_8:{ *:[v16i8] } MQPR:{ *:[v8i16] }:$val), anonymous_7325:{ *:[i32] }:$addr)
/* 64518*/          0, /*End of Scope*/
/* 64519*/        /*Scope*/ 38|128,2/*294*/, /*->64815*/
/* 64521*/          OPC_RecordChild3, // #3 = $addr
/* 64522*/          OPC_CheckChild3Type, MVT::i32,
/* 64524*/          OPC_CheckType, MVT::i32,
/* 64526*/          OPC_Scope, 96|128,1/*224*/, /*->64753*/ // 2 children in Scope
/* 64529*/            OPC_CheckPredicate, 45, // Predicate_istore
/* 64531*/            OPC_Scope, 25, /*->64558*/ // 8 children in Scope
/* 64533*/              OPC_CheckPredicate, 47, // Predicate_pre_store
/* 64535*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64537*/              OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 64540*/              OPC_EmitMergeInputChains1_0,
/* 64541*/              OPC_EmitInteger, MVT::i32, 0, 
/* 64544*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64547*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_pre), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 10
                        // Dst: (MVE_VSTRBU8_pre:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 64558*/            /*Scope*/ 25, /*->64584*/
/* 64559*/              OPC_CheckPredicate, 43, // Predicate_post_store
/* 64561*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64563*/              OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 64566*/              OPC_EmitMergeInputChains1_0,
/* 64567*/              OPC_EmitInteger, MVT::i32, 0, 
/* 64570*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64573*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_post), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 10
                        // Dst: (MVE_VSTRBU8_post:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 64584*/            /*Scope*/ 27, /*->64612*/
/* 64585*/              OPC_CheckPredicate, 47, // Predicate_pre_store
/* 64587*/              OPC_CheckPredicate, 51, // Predicate_aligned16_pre_store
/* 64589*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64591*/              OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 64594*/              OPC_EmitMergeInputChains1_0,
/* 64595*/              OPC_EmitInteger, MVT::i32, 0, 
/* 64598*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64601*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_pre), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned16_pre_store>> - Complexity = 10
                        // Dst: (MVE_VSTRHU16_pre:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 64612*/            /*Scope*/ 27, /*->64640*/
/* 64613*/              OPC_CheckPredicate, 43, // Predicate_post_store
/* 64615*/              OPC_CheckPredicate, 51, // Predicate_aligned16_post_store
/* 64617*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64619*/              OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 64622*/              OPC_EmitMergeInputChains1_0,
/* 64623*/              OPC_EmitInteger, MVT::i32, 0, 
/* 64626*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64629*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_post), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned16_post_store>> - Complexity = 10
                        // Dst: (MVE_VSTRHU16_post:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 64640*/            /*Scope*/ 27, /*->64668*/
/* 64641*/              OPC_CheckPredicate, 47, // Predicate_pre_store
/* 64643*/              OPC_CheckPredicate, 46, // Predicate_aligned32_pre_store
/* 64645*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64647*/              OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 64650*/              OPC_EmitMergeInputChains1_0,
/* 64651*/              OPC_EmitInteger, MVT::i32, 0, 
/* 64654*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64657*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned32_pre_store>> - Complexity = 10
                        // Dst: (MVE_VSTRWU32_pre:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 64668*/            /*Scope*/ 27, /*->64696*/
/* 64669*/              OPC_CheckPredicate, 43, // Predicate_post_store
/* 64671*/              OPC_CheckPredicate, 46, // Predicate_aligned32_post_store
/* 64673*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64675*/              OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 64678*/              OPC_EmitMergeInputChains1_0,
/* 64679*/              OPC_EmitInteger, MVT::i32, 0, 
/* 64682*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64685*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_post), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned32_post_store>> - Complexity = 10
                        // Dst: (MVE_VSTRWU32_post:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 64696*/            /*Scope*/ 27, /*->64724*/
/* 64697*/              OPC_CheckPredicate, 47, // Predicate_pre_store
/* 64699*/              OPC_CheckPredicate, 51, // Predicate_aligned16_pre_store
/* 64701*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 64703*/              OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 64706*/              OPC_EmitMergeInputChains1_0,
/* 64707*/              OPC_EmitInteger, MVT::i32, 0, 
/* 64710*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64713*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_pre), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned16_pre_store>> - Complexity = 10
                        // Dst: (MVE_VSTRHU16_pre:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 64724*/            /*Scope*/ 27, /*->64752*/
/* 64725*/              OPC_CheckPredicate, 43, // Predicate_post_store
/* 64727*/              OPC_CheckPredicate, 51, // Predicate_aligned16_post_store
/* 64729*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 64731*/              OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 64734*/              OPC_EmitMergeInputChains1_0,
/* 64735*/              OPC_EmitInteger, MVT::i32, 0, 
/* 64738*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64741*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_post), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned16_post_store>> - Complexity = 10
                        // Dst: (MVE_VSTRHU16_post:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 64752*/            0, /*End of Scope*/
/* 64753*/          /*Scope*/ 60, /*->64814*/
/* 64754*/            OPC_CheckPredicate, 42, // Predicate_itruncstore
/* 64756*/            OPC_Scope, 27, /*->64785*/ // 2 children in Scope
/* 64758*/              OPC_CheckPredicate, 43, // Predicate_post_truncst
/* 64760*/              OPC_CheckPredicate, 54, // Predicate_post_truncstvi8
/* 64762*/              OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 64764*/              OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 64767*/              OPC_EmitMergeInputChains1_0,
/* 64768*/              OPC_EmitInteger, MVT::i32, 0, 
/* 64771*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64774*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRB16_post), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncstvi8>> - Complexity = 10
                        // Dst: (MVE_VSTRB16_post:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 64785*/            /*Scope*/ 27, /*->64813*/
/* 64786*/              OPC_CheckPredicate, 47, // Predicate_pre_truncst
/* 64788*/              OPC_CheckPredicate, 54, // Predicate_pre_truncstvi8
/* 64790*/              OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 64792*/              OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 64795*/              OPC_EmitMergeInputChains1_0,
/* 64796*/              OPC_EmitInteger, MVT::i32, 0, 
/* 64799*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64802*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRB16_pre), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncstvi8>> - Complexity = 10
                        // Dst: (MVE_VSTRB16_pre:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 64813*/            0, /*End of Scope*/
/* 64814*/          0, /*End of Scope*/
/* 64815*/        0, /*End of Scope*/
/* 64816*/      /*Scope*/ 7|128,3/*391*/, /*->65209*/
/* 64818*/        OPC_CheckChild1Type, MVT::v8f16,
/* 64820*/        OPC_RecordChild2, // #2 = $addr
/* 64821*/        OPC_Scope, 25|128,1/*153*/, /*->64977*/ // 2 children in Scope
/* 64824*/          OPC_CheckChild2Type, MVT::i32,
/* 64826*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 64828*/          OPC_CheckPredicate, 45, // Predicate_store
/* 64830*/          OPC_Scope, 24, /*->64856*/ // 5 children in Scope
/* 64832*/            OPC_CheckPredicate, 49, // Predicate_byte_alignedstore
/* 64834*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64836*/            OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #3 #4
/* 64839*/            OPC_EmitMergeInputChains1_0,
/* 64840*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64843*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64846*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v8f16] }:$val, anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_byte_alignedstore>> - Complexity = 13
                      // Dst: (MVE_VSTRBU8 MQPR:{ *:[v8f16] }:$val, anonymous_7325:{ *:[i32] }:$addr)
/* 64856*/          /*Scope*/ 24, /*->64881*/
/* 64857*/            OPC_CheckPredicate, 48, // Predicate_hword_alignedstore
/* 64859*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64861*/            OPC_CheckComplexPat, /*CP*/31, /*#*/2, // SelectT2AddrModeImm7<1>:$addr #3 #4
/* 64864*/            OPC_EmitMergeInputChains1_0,
/* 64865*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64868*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64871*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v8f16] }:$val, anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_hword_alignedstore>> - Complexity = 13
                      // Dst: (MVE_VSTRHU16 MQPR:{ *:[v8f16] }:$val, anonymous_7327:{ *:[i32] }:$addr)
/* 64881*/          /*Scope*/ 24, /*->64906*/
/* 64882*/            OPC_CheckPredicate, 46, // Predicate_alignedstore32
/* 64884*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64886*/            OPC_CheckComplexPat, /*CP*/32, /*#*/2, // SelectT2AddrModeImm7<2>:$addr #3 #4
/* 64889*/            OPC_EmitMergeInputChains1_0,
/* 64890*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64893*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64896*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v8f16] }:$val, anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 13
                      // Dst: (MVE_VSTRWU32 MQPR:{ *:[v8f16] }:$val, anonymous_7329:{ *:[i32] }:$addr)
/* 64906*/          /*Scope*/ 24, /*->64931*/
/* 64907*/            OPC_CheckPredicate, 51, // Predicate_alignedstore16
/* 64909*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 64911*/            OPC_CheckComplexPat, /*CP*/31, /*#*/2, // SelectT2AddrModeImm7<1>:$addr #3 #4
/* 64914*/            OPC_EmitMergeInputChains1_0,
/* 64915*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64918*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64921*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v8f16] }:$val, anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore16>> - Complexity = 13
                      // Dst: (MVE_VSTRHU16 MQPR:{ *:[v8f16] }:$val, anonymous_7327:{ *:[i32] }:$addr)
/* 64931*/          /*Scope*/ 44, /*->64976*/
/* 64932*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 64934*/            OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #3 #4
/* 64937*/            OPC_EmitMergeInputChains1_0,
/* 64938*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64941*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64944*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #7
/* 64950*/            OPC_EmitNode1, TARGET_VAL(ARM::MVE_VREV16_8), 0,
                          MVT::v16i8, 4/*#Ops*/, 1, 5, 6, 7,  // Results = #8
/* 64960*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64963*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 64966*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 9, 10, 
                      // Src: (st MQPR:{ *:[v8f16] }:$val, anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                      // Dst: (MVE_VSTRBU8 (MVE_VREV16_8:{ *:[v16i8] } MQPR:{ *:[v8f16] }:$val), anonymous_7325:{ *:[i32] }:$addr)
/* 64976*/          0, /*End of Scope*/
/* 64977*/        /*Scope*/ 101|128,1/*229*/, /*->65208*/
/* 64979*/          OPC_RecordChild3, // #3 = $addr
/* 64980*/          OPC_CheckChild3Type, MVT::i32,
/* 64982*/          OPC_CheckPredicate, 45, // Predicate_istore
/* 64984*/          OPC_CheckType, MVT::i32,
/* 64986*/          OPC_Scope, 25, /*->65013*/ // 8 children in Scope
/* 64988*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 64990*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 64992*/            OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 64995*/            OPC_EmitMergeInputChains1_0,
/* 64996*/            OPC_EmitInteger, MVT::i32, 0, 
/* 64999*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65002*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRBU8_pre:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 65013*/          /*Scope*/ 25, /*->65039*/
/* 65014*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 65016*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65018*/            OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 65021*/            OPC_EmitMergeInputChains1_0,
/* 65022*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65025*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65028*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRBU8_post:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 65039*/          /*Scope*/ 27, /*->65067*/
/* 65040*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 65042*/            OPC_CheckPredicate, 51, // Predicate_aligned16_pre_store
/* 65044*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65046*/            OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 65049*/            OPC_EmitMergeInputChains1_0,
/* 65050*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65053*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65056*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned16_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRHU16_pre:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 65067*/          /*Scope*/ 27, /*->65095*/
/* 65068*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 65070*/            OPC_CheckPredicate, 51, // Predicate_aligned16_post_store
/* 65072*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65074*/            OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 65077*/            OPC_EmitMergeInputChains1_0,
/* 65078*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65081*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65084*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned16_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRHU16_post:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 65095*/          /*Scope*/ 27, /*->65123*/
/* 65096*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 65098*/            OPC_CheckPredicate, 46, // Predicate_aligned32_pre_store
/* 65100*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65102*/            OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 65105*/            OPC_EmitMergeInputChains1_0,
/* 65106*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65109*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65112*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned32_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRWU32_pre:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 65123*/          /*Scope*/ 27, /*->65151*/
/* 65124*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 65126*/            OPC_CheckPredicate, 46, // Predicate_aligned32_post_store
/* 65128*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65130*/            OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 65133*/            OPC_EmitMergeInputChains1_0,
/* 65134*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65137*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65140*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned32_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRWU32_post:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 65151*/          /*Scope*/ 27, /*->65179*/
/* 65152*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 65154*/            OPC_CheckPredicate, 51, // Predicate_aligned16_pre_store
/* 65156*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 65158*/            OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 65161*/            OPC_EmitMergeInputChains1_0,
/* 65162*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65165*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65168*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned16_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRHU16_pre:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 65179*/          /*Scope*/ 27, /*->65207*/
/* 65180*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 65182*/            OPC_CheckPredicate, 51, // Predicate_aligned16_post_store
/* 65184*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 65186*/            OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 65189*/            OPC_EmitMergeInputChains1_0,
/* 65190*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65193*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65196*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned16_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRHU16_post:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 65207*/          0, /*End of Scope*/
/* 65208*/        0, /*End of Scope*/
/* 65209*/      /*Scope*/ 61|128,4/*573*/, /*->65784*/
/* 65211*/        OPC_CheckChild1Type, MVT::v4i32,
/* 65213*/        OPC_RecordChild2, // #2 = $addr
/* 65214*/        OPC_Scope, 86|128,1/*214*/, /*->65431*/ // 2 children in Scope
/* 65217*/          OPC_CheckChild2Type, MVT::i32,
/* 65219*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 65221*/          OPC_Scope, 105, /*->65328*/ // 3 children in Scope
/* 65223*/            OPC_CheckPredicate, 45, // Predicate_store
/* 65225*/            OPC_Scope, 24, /*->65251*/ // 3 children in Scope
/* 65227*/              OPC_CheckPredicate, 49, // Predicate_byte_alignedstore
/* 65229*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65231*/              OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #3 #4
/* 65234*/              OPC_EmitMergeInputChains1_0,
/* 65235*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65238*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65241*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st MQPR:{ *:[v4i32] }:$val, anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_byte_alignedstore>> - Complexity = 13
                        // Dst: (MVE_VSTRBU8 MQPR:{ *:[v4i32] }:$val, anonymous_7325:{ *:[i32] }:$addr)
/* 65251*/            /*Scope*/ 24, /*->65276*/
/* 65252*/              OPC_CheckPredicate, 48, // Predicate_hword_alignedstore
/* 65254*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65256*/              OPC_CheckComplexPat, /*CP*/31, /*#*/2, // SelectT2AddrModeImm7<1>:$addr #3 #4
/* 65259*/              OPC_EmitMergeInputChains1_0,
/* 65260*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65263*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65266*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st MQPR:{ *:[v4i32] }:$val, anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_hword_alignedstore>> - Complexity = 13
                        // Dst: (MVE_VSTRHU16 MQPR:{ *:[v4i32] }:$val, anonymous_7327:{ *:[i32] }:$addr)
/* 65276*/            /*Scope*/ 50, /*->65327*/
/* 65277*/              OPC_CheckPredicate, 46, // Predicate_alignedstore32
/* 65279*/              OPC_Scope, 22, /*->65303*/ // 2 children in Scope
/* 65281*/                OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65283*/                OPC_CheckComplexPat, /*CP*/32, /*#*/2, // SelectT2AddrModeImm7<2>:$addr #3 #4
/* 65286*/                OPC_EmitMergeInputChains1_0,
/* 65287*/                OPC_EmitInteger, MVT::i32, 0, 
/* 65290*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65293*/                OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                              5/*#Ops*/, 1, 3, 4, 5, 6, 
                          // Src: (st MQPR:{ *:[v4i32] }:$val, anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 13
                          // Dst: (MVE_VSTRWU32 MQPR:{ *:[v4i32] }:$val, anonymous_7329:{ *:[i32] }:$addr)
/* 65303*/              /*Scope*/ 22, /*->65326*/
/* 65304*/                OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 65306*/                OPC_CheckComplexPat, /*CP*/32, /*#*/2, // SelectT2AddrModeImm7<2>:$addr #3 #4
/* 65309*/                OPC_EmitMergeInputChains1_0,
/* 65310*/                OPC_EmitInteger, MVT::i32, 0, 
/* 65313*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65316*/                OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                              5/*#Ops*/, 1, 3, 4, 5, 6, 
                          // Src: (st MQPR:{ *:[v4i32] }:$val, anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 13
                          // Dst: (MVE_VSTRWU32 MQPR:{ *:[v4i32] }:$val, anonymous_7329:{ *:[i32] }:$addr)
/* 65326*/              0, /*End of Scope*/
/* 65327*/            0, /*End of Scope*/
/* 65328*/          /*Scope*/ 54, /*->65383*/
/* 65329*/            OPC_CheckPredicate, 42, // Predicate_truncstore
/* 65331*/            OPC_Scope, 24, /*->65357*/ // 2 children in Scope
/* 65333*/              OPC_CheckPredicate, 54, // Predicate_truncstorevi8
/* 65335*/              OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 65337*/              OPC_CheckComplexPat, /*CP*/36, /*#*/2, // SelectTAddrModeImm7<0>:$addr #3 #4
/* 65340*/              OPC_EmitMergeInputChains1_0,
/* 65341*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65344*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65347*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRB32), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st MQPR:{ *:[v4i32] }:$val, anonymous_7319:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi8>> - Complexity = 13
                        // Dst: (MVE_VSTRB32 MQPR:{ *:[v4i32] }:$val, anonymous_7319:{ *:[i32] }:$addr)
/* 65357*/            /*Scope*/ 24, /*->65382*/
/* 65358*/              OPC_CheckPredicate, 55, // Predicate_truncstorevi16
/* 65360*/              OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 65362*/              OPC_CheckComplexPat, /*CP*/37, /*#*/2, // SelectTAddrModeImm7<1>:$addr #3 #4
/* 65365*/              OPC_EmitMergeInputChains1_0,
/* 65366*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65369*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65372*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRH32), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st MQPR:{ *:[v4i32] }:$val, anonymous_7322:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorevi16>> - Complexity = 13
                        // Dst: (MVE_VSTRH32 MQPR:{ *:[v4i32] }:$val, anonymous_7322:{ *:[i32] }:$addr)
/* 65382*/            0, /*End of Scope*/
/* 65383*/          /*Scope*/ 46, /*->65430*/
/* 65384*/            OPC_CheckPredicate, 45, // Predicate_store
/* 65386*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 65388*/            OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #3 #4
/* 65391*/            OPC_EmitMergeInputChains1_0,
/* 65392*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65395*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65398*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #7
/* 65404*/            OPC_EmitNode1, TARGET_VAL(ARM::MVE_VREV32_8), 0,
                          MVT::v16i8, 4/*#Ops*/, 1, 5, 6, 7,  // Results = #8
/* 65414*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65417*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65420*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 9, 10, 
                      // Src: (st MQPR:{ *:[v4i32] }:$val, anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                      // Dst: (MVE_VSTRBU8 (MVE_VREV32_8:{ *:[v16i8] } MQPR:{ *:[v4i32] }:$val), anonymous_7325:{ *:[i32] }:$addr)
/* 65430*/          0, /*End of Scope*/
/* 65431*/        /*Scope*/ 94|128,2/*350*/, /*->65783*/
/* 65433*/          OPC_RecordChild3, // #3 = $addr
/* 65434*/          OPC_CheckChild3Type, MVT::i32,
/* 65436*/          OPC_CheckType, MVT::i32,
/* 65438*/          OPC_Scope, 96|128,1/*224*/, /*->65665*/ // 2 children in Scope
/* 65441*/            OPC_CheckPredicate, 45, // Predicate_istore
/* 65443*/            OPC_Scope, 25, /*->65470*/ // 8 children in Scope
/* 65445*/              OPC_CheckPredicate, 47, // Predicate_pre_store
/* 65447*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65449*/              OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 65452*/              OPC_EmitMergeInputChains1_0,
/* 65453*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65456*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65459*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_pre), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 10
                        // Dst: (MVE_VSTRBU8_pre:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 65470*/            /*Scope*/ 25, /*->65496*/
/* 65471*/              OPC_CheckPredicate, 43, // Predicate_post_store
/* 65473*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65475*/              OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 65478*/              OPC_EmitMergeInputChains1_0,
/* 65479*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65482*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65485*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_post), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 10
                        // Dst: (MVE_VSTRBU8_post:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 65496*/            /*Scope*/ 27, /*->65524*/
/* 65497*/              OPC_CheckPredicate, 47, // Predicate_pre_store
/* 65499*/              OPC_CheckPredicate, 51, // Predicate_aligned16_pre_store
/* 65501*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65503*/              OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 65506*/              OPC_EmitMergeInputChains1_0,
/* 65507*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65510*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65513*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_pre), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned16_pre_store>> - Complexity = 10
                        // Dst: (MVE_VSTRHU16_pre:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 65524*/            /*Scope*/ 27, /*->65552*/
/* 65525*/              OPC_CheckPredicate, 43, // Predicate_post_store
/* 65527*/              OPC_CheckPredicate, 51, // Predicate_aligned16_post_store
/* 65529*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65531*/              OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 65534*/              OPC_EmitMergeInputChains1_0,
/* 65535*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65538*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65541*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_post), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned16_post_store>> - Complexity = 10
                        // Dst: (MVE_VSTRHU16_post:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 65552*/            /*Scope*/ 27, /*->65580*/
/* 65553*/              OPC_CheckPredicate, 47, // Predicate_pre_store
/* 65555*/              OPC_CheckPredicate, 46, // Predicate_aligned32_pre_store
/* 65557*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65559*/              OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 65562*/              OPC_EmitMergeInputChains1_0,
/* 65563*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65566*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65569*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned32_pre_store>> - Complexity = 10
                        // Dst: (MVE_VSTRWU32_pre:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 65580*/            /*Scope*/ 27, /*->65608*/
/* 65581*/              OPC_CheckPredicate, 43, // Predicate_post_store
/* 65583*/              OPC_CheckPredicate, 46, // Predicate_aligned32_post_store
/* 65585*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65587*/              OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 65590*/              OPC_EmitMergeInputChains1_0,
/* 65591*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65594*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65597*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_post), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned32_post_store>> - Complexity = 10
                        // Dst: (MVE_VSTRWU32_post:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 65608*/            /*Scope*/ 27, /*->65636*/
/* 65609*/              OPC_CheckPredicate, 47, // Predicate_pre_store
/* 65611*/              OPC_CheckPredicate, 46, // Predicate_aligned32_pre_store
/* 65613*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 65615*/              OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 65618*/              OPC_EmitMergeInputChains1_0,
/* 65619*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65622*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65625*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned32_pre_store>> - Complexity = 10
                        // Dst: (MVE_VSTRWU32_pre:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 65636*/            /*Scope*/ 27, /*->65664*/
/* 65637*/              OPC_CheckPredicate, 43, // Predicate_post_store
/* 65639*/              OPC_CheckPredicate, 46, // Predicate_aligned32_post_store
/* 65641*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 65643*/              OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 65646*/              OPC_EmitMergeInputChains1_0,
/* 65647*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65650*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65653*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_post), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned32_post_store>> - Complexity = 10
                        // Dst: (MVE_VSTRWU32_post:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 65664*/            0, /*End of Scope*/
/* 65665*/          /*Scope*/ 116, /*->65782*/
/* 65666*/            OPC_CheckPredicate, 42, // Predicate_itruncstore
/* 65668*/            OPC_Scope, 27, /*->65697*/ // 4 children in Scope
/* 65670*/              OPC_CheckPredicate, 43, // Predicate_post_truncst
/* 65672*/              OPC_CheckPredicate, 54, // Predicate_post_truncstvi8
/* 65674*/              OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 65676*/              OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 65679*/              OPC_EmitMergeInputChains1_0,
/* 65680*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65683*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65686*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRB32_post), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncstvi8>> - Complexity = 10
                        // Dst: (MVE_VSTRB32_post:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 65697*/            /*Scope*/ 27, /*->65725*/
/* 65698*/              OPC_CheckPredicate, 47, // Predicate_pre_truncst
/* 65700*/              OPC_CheckPredicate, 54, // Predicate_pre_truncstvi8
/* 65702*/              OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 65704*/              OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 65707*/              OPC_EmitMergeInputChains1_0,
/* 65708*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65711*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65714*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRB32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncstvi8>> - Complexity = 10
                        // Dst: (MVE_VSTRB32_pre:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 65725*/            /*Scope*/ 27, /*->65753*/
/* 65726*/              OPC_CheckPredicate, 43, // Predicate_post_truncst
/* 65728*/              OPC_CheckPredicate, 55, // Predicate_post_truncstvi16
/* 65730*/              OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 65732*/              OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 65735*/              OPC_EmitMergeInputChains1_0,
/* 65736*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65739*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65742*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRH32_post), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_itruncstore>><<P:Predicate_post_truncst>><<P:Predicate_post_truncstvi16>> - Complexity = 10
                        // Dst: (MVE_VSTRH32_post:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 65753*/            /*Scope*/ 27, /*->65781*/
/* 65754*/              OPC_CheckPredicate, 47, // Predicate_pre_truncst
/* 65756*/              OPC_CheckPredicate, 55, // Predicate_pre_truncstvi16
/* 65758*/              OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 65760*/              OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 65763*/              OPC_EmitMergeInputChains1_0,
/* 65764*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65767*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65770*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRH32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                        // Src: (ist:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_itruncstore>><<P:Predicate_pre_truncst>><<P:Predicate_pre_truncstvi16>> - Complexity = 10
                        // Dst: (MVE_VSTRH32_pre:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 65781*/            0, /*End of Scope*/
/* 65782*/          0, /*End of Scope*/
/* 65783*/        0, /*End of Scope*/
/* 65784*/      /*Scope*/ 8|128,3/*392*/, /*->66178*/
/* 65786*/        OPC_CheckChild1Type, MVT::v4f32,
/* 65788*/        OPC_RecordChild2, // #2 = $addr
/* 65789*/        OPC_Scope, 26|128,1/*154*/, /*->65946*/ // 2 children in Scope
/* 65792*/          OPC_CheckChild2Type, MVT::i32,
/* 65794*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 65796*/          OPC_CheckPredicate, 45, // Predicate_store
/* 65798*/          OPC_Scope, 24, /*->65824*/ // 4 children in Scope
/* 65800*/            OPC_CheckPredicate, 49, // Predicate_byte_alignedstore
/* 65802*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65804*/            OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #3 #4
/* 65807*/            OPC_EmitMergeInputChains1_0,
/* 65808*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65811*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65814*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v4f32] }:$val, anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_byte_alignedstore>> - Complexity = 13
                      // Dst: (MVE_VSTRBU8 MQPR:{ *:[v4f32] }:$val, anonymous_7325:{ *:[i32] }:$addr)
/* 65824*/          /*Scope*/ 24, /*->65849*/
/* 65825*/            OPC_CheckPredicate, 48, // Predicate_hword_alignedstore
/* 65827*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65829*/            OPC_CheckComplexPat, /*CP*/31, /*#*/2, // SelectT2AddrModeImm7<1>:$addr #3 #4
/* 65832*/            OPC_EmitMergeInputChains1_0,
/* 65833*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65836*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65839*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v4f32] }:$val, anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_hword_alignedstore>> - Complexity = 13
                      // Dst: (MVE_VSTRHU16 MQPR:{ *:[v4f32] }:$val, anonymous_7327:{ *:[i32] }:$addr)
/* 65849*/          /*Scope*/ 50, /*->65900*/
/* 65850*/            OPC_CheckPredicate, 46, // Predicate_alignedstore32
/* 65852*/            OPC_Scope, 22, /*->65876*/ // 2 children in Scope
/* 65854*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65856*/              OPC_CheckComplexPat, /*CP*/32, /*#*/2, // SelectT2AddrModeImm7<2>:$addr #3 #4
/* 65859*/              OPC_EmitMergeInputChains1_0,
/* 65860*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65863*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65866*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st MQPR:{ *:[v4f32] }:$val, anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 13
                        // Dst: (MVE_VSTRWU32 MQPR:{ *:[v4f32] }:$val, anonymous_7329:{ *:[i32] }:$addr)
/* 65876*/            /*Scope*/ 22, /*->65899*/
/* 65877*/              OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 65879*/              OPC_CheckComplexPat, /*CP*/32, /*#*/2, // SelectT2AddrModeImm7<2>:$addr #3 #4
/* 65882*/              OPC_EmitMergeInputChains1_0,
/* 65883*/              OPC_EmitInteger, MVT::i32, 0, 
/* 65886*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65889*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 1, 3, 4, 5, 6, 
                        // Src: (st MQPR:{ *:[v4f32] }:$val, anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 13
                        // Dst: (MVE_VSTRWU32 MQPR:{ *:[v4f32] }:$val, anonymous_7329:{ *:[i32] }:$addr)
/* 65899*/            0, /*End of Scope*/
/* 65900*/          /*Scope*/ 44, /*->65945*/
/* 65901*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 65903*/            OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #3 #4
/* 65906*/            OPC_EmitMergeInputChains1_0,
/* 65907*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65910*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65913*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #7
/* 65919*/            OPC_EmitNode1, TARGET_VAL(ARM::MVE_VREV32_8), 0,
                          MVT::v16i8, 4/*#Ops*/, 1, 5, 6, 7,  // Results = #8
/* 65929*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65932*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65935*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 9, 10, 
                      // Src: (st MQPR:{ *:[v4f32] }:$val, anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                      // Dst: (MVE_VSTRBU8 (MVE_VREV32_8:{ *:[v16i8] } MQPR:{ *:[v4f32] }:$val), anonymous_7325:{ *:[i32] }:$addr)
/* 65945*/          0, /*End of Scope*/
/* 65946*/        /*Scope*/ 101|128,1/*229*/, /*->66177*/
/* 65948*/          OPC_RecordChild3, // #3 = $addr
/* 65949*/          OPC_CheckChild3Type, MVT::i32,
/* 65951*/          OPC_CheckPredicate, 45, // Predicate_istore
/* 65953*/          OPC_CheckType, MVT::i32,
/* 65955*/          OPC_Scope, 25, /*->65982*/ // 8 children in Scope
/* 65957*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 65959*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65961*/            OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 65964*/            OPC_EmitMergeInputChains1_0,
/* 65965*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65968*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65971*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRBU8_pre:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 65982*/          /*Scope*/ 25, /*->66008*/
/* 65983*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 65985*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 65987*/            OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 65990*/            OPC_EmitMergeInputChains1_0,
/* 65991*/            OPC_EmitInteger, MVT::i32, 0, 
/* 65994*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 65997*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRBU8_post:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 66008*/          /*Scope*/ 27, /*->66036*/
/* 66009*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 66011*/            OPC_CheckPredicate, 51, // Predicate_aligned16_pre_store
/* 66013*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 66015*/            OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 66018*/            OPC_EmitMergeInputChains1_0,
/* 66019*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66022*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66025*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned16_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRHU16_pre:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 66036*/          /*Scope*/ 27, /*->66064*/
/* 66037*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 66039*/            OPC_CheckPredicate, 51, // Predicate_aligned16_post_store
/* 66041*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 66043*/            OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 66046*/            OPC_EmitMergeInputChains1_0,
/* 66047*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66050*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66053*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned16_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRHU16_post:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 66064*/          /*Scope*/ 27, /*->66092*/
/* 66065*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 66067*/            OPC_CheckPredicate, 46, // Predicate_aligned32_pre_store
/* 66069*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 66071*/            OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 66074*/            OPC_EmitMergeInputChains1_0,
/* 66075*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66078*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66081*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned32_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRWU32_pre:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 66092*/          /*Scope*/ 27, /*->66120*/
/* 66093*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 66095*/            OPC_CheckPredicate, 46, // Predicate_aligned32_post_store
/* 66097*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 66099*/            OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 66102*/            OPC_EmitMergeInputChains1_0,
/* 66103*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66106*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66109*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned32_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRWU32_post:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 66120*/          /*Scope*/ 27, /*->66148*/
/* 66121*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 66123*/            OPC_CheckPredicate, 46, // Predicate_aligned32_pre_store
/* 66125*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 66127*/            OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 66130*/            OPC_EmitMergeInputChains1_0,
/* 66131*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66134*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66137*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned32_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRWU32_pre:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 66148*/          /*Scope*/ 27, /*->66176*/
/* 66149*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 66151*/            OPC_CheckPredicate, 46, // Predicate_aligned32_post_store
/* 66153*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 66155*/            OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 66158*/            OPC_EmitMergeInputChains1_0,
/* 66159*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66162*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66165*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned32_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRWU32_post:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 66176*/          0, /*End of Scope*/
/* 66177*/        0, /*End of Scope*/
/* 66178*/      /*Scope*/ 54|128,2/*310*/, /*->66490*/
/* 66180*/        OPC_CheckChild1Type, MVT::v2i64,
/* 66182*/        OPC_RecordChild2, // #2 = $addr
/* 66183*/        OPC_Scope, 0|128,1/*128*/, /*->66314*/ // 2 children in Scope
/* 66186*/          OPC_CheckChild2Type, MVT::i32,
/* 66188*/          OPC_CheckPredicate, 41, // Predicate_unindexedstore
/* 66190*/          OPC_CheckPredicate, 45, // Predicate_store
/* 66192*/          OPC_Scope, 24, /*->66218*/ // 4 children in Scope
/* 66194*/            OPC_CheckPredicate, 49, // Predicate_byte_alignedstore
/* 66196*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 66198*/            OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #3 #4
/* 66201*/            OPC_EmitMergeInputChains1_0,
/* 66202*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66205*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66208*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v2i64] }:$val, anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_byte_alignedstore>> - Complexity = 13
                      // Dst: (MVE_VSTRBU8 MQPR:{ *:[v2i64] }:$val, anonymous_7325:{ *:[i32] }:$addr)
/* 66218*/          /*Scope*/ 24, /*->66243*/
/* 66219*/            OPC_CheckPredicate, 48, // Predicate_hword_alignedstore
/* 66221*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 66223*/            OPC_CheckComplexPat, /*CP*/31, /*#*/2, // SelectT2AddrModeImm7<1>:$addr #3 #4
/* 66226*/            OPC_EmitMergeInputChains1_0,
/* 66227*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66230*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66233*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v2i64] }:$val, anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_hword_alignedstore>> - Complexity = 13
                      // Dst: (MVE_VSTRHU16 MQPR:{ *:[v2i64] }:$val, anonymous_7327:{ *:[i32] }:$addr)
/* 66243*/          /*Scope*/ 24, /*->66268*/
/* 66244*/            OPC_CheckPredicate, 46, // Predicate_alignedstore32
/* 66246*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 66248*/            OPC_CheckComplexPat, /*CP*/32, /*#*/2, // SelectT2AddrModeImm7<2>:$addr #3 #4
/* 66251*/            OPC_EmitMergeInputChains1_0,
/* 66252*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66255*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66258*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 3, 4, 5, 6, 
                      // Src: (st MQPR:{ *:[v2i64] }:$val, anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore32>> - Complexity = 13
                      // Dst: (MVE_VSTRWU32 MQPR:{ *:[v2i64] }:$val, anonymous_7329:{ *:[i32] }:$addr)
/* 66268*/          /*Scope*/ 44, /*->66313*/
/* 66269*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 66271*/            OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #3 #4
/* 66274*/            OPC_EmitMergeInputChains1_0,
/* 66275*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66278*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66281*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #7
/* 66287*/            OPC_EmitNode1, TARGET_VAL(ARM::MVE_VREV64_8), 0,
                          MVT::v16i8, 4/*#Ops*/, 1, 5, 6, 7,  // Results = #8
/* 66297*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66300*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66303*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 8, 3, 4, 9, 10, 
                      // Src: (st MQPR:{ *:[v2i64] }:$val, anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
                      // Dst: (MVE_VSTRBU8 (MVE_VREV64_8:{ *:[v16i8] } MQPR:{ *:[v2i64] }:$val), anonymous_7325:{ *:[i32] }:$addr)
/* 66313*/          0, /*End of Scope*/
/* 66314*/        /*Scope*/ 45|128,1/*173*/, /*->66489*/
/* 66316*/          OPC_RecordChild3, // #3 = $addr
/* 66317*/          OPC_CheckChild3Type, MVT::i32,
/* 66319*/          OPC_CheckPredicate, 45, // Predicate_istore
/* 66321*/          OPC_CheckType, MVT::i32,
/* 66323*/          OPC_Scope, 25, /*->66350*/ // 6 children in Scope
/* 66325*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 66327*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 66329*/            OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 66332*/            OPC_EmitMergeInputChains1_0,
/* 66333*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66336*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66339*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v2i64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRBU8_pre:{ *:[i32] } MQPR:{ *:[v2i64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 66350*/          /*Scope*/ 25, /*->66376*/
/* 66351*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 66353*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 66355*/            OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #4
/* 66358*/            OPC_EmitMergeInputChains1_0,
/* 66359*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66362*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66365*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v2i64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRBU8_post:{ *:[i32] } MQPR:{ *:[v2i64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr)
/* 66376*/          /*Scope*/ 27, /*->66404*/
/* 66377*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 66379*/            OPC_CheckPredicate, 51, // Predicate_aligned16_pre_store
/* 66381*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 66383*/            OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 66386*/            OPC_EmitMergeInputChains1_0,
/* 66387*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66390*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66393*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v2i64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned16_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRHU16_pre:{ *:[i32] } MQPR:{ *:[v2i64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 66404*/          /*Scope*/ 27, /*->66432*/
/* 66405*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 66407*/            OPC_CheckPredicate, 51, // Predicate_aligned16_post_store
/* 66409*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 66411*/            OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #4
/* 66414*/            OPC_EmitMergeInputChains1_0,
/* 66415*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66418*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66421*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v2i64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned16_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRHU16_post:{ *:[i32] } MQPR:{ *:[v2i64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr)
/* 66432*/          /*Scope*/ 27, /*->66460*/
/* 66433*/            OPC_CheckPredicate, 47, // Predicate_pre_store
/* 66435*/            OPC_CheckPredicate, 46, // Predicate_aligned32_pre_store
/* 66437*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 66439*/            OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 66442*/            OPC_EmitMergeInputChains1_0,
/* 66443*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66446*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66449*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v2i64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_pre_store>><<P:Predicate_aligned32_pre_store>> - Complexity = 10
                      // Dst: (MVE_VSTRWU32_pre:{ *:[i32] } MQPR:{ *:[v2i64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 66460*/          /*Scope*/ 27, /*->66488*/
/* 66461*/            OPC_CheckPredicate, 43, // Predicate_post_store
/* 66463*/            OPC_CheckPredicate, 46, // Predicate_aligned32_post_store
/* 66465*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 66467*/            OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #4
/* 66470*/            OPC_EmitMergeInputChains1_0,
/* 66471*/            OPC_EmitInteger, MVT::i32, 0, 
/* 66474*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66477*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_post), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 1, 2, 4, 5, 6, 
                      // Src: (ist:{ *:[i32] } MQPR:{ *:[v2i64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)<<P:Predicate_istore>><<P:Predicate_post_store>><<P:Predicate_aligned32_post_store>> - Complexity = 10
                      // Dst: (MVE_VSTRWU32_post:{ *:[i32] } MQPR:{ *:[v2i64] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr)
/* 66488*/          0, /*End of Scope*/
/* 66489*/        0, /*End of Scope*/
/* 66490*/      0, /*End of Scope*/
/* 66491*/    0, /*End of Scope*/
/* 66492*/  /*SwitchOpcode*/ 77|128,29/*3789*/, TARGET_VAL(ISD::INTRINSIC_VOID),// ->70285
/* 66496*/    OPC_RecordNode, // #0 = 'intrinsic_void' chained node
/* 66497*/    OPC_Scope, 87, /*->66586*/ // 29 children in Scope
/* 66499*/      OPC_CheckChild1Integer, 90|128,11/*1498*/, 
/* 66502*/      OPC_RecordChild2, // #1 = $cop
/* 66503*/      OPC_MoveChild2,
/* 66504*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66507*/      OPC_MoveParent,
/* 66508*/      OPC_RecordChild3, // #2 = $opc1
/* 66509*/      OPC_MoveChild3,
/* 66510*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66513*/      OPC_MoveParent,
/* 66514*/      OPC_RecordChild4, // #3 = $CRd
/* 66515*/      OPC_MoveChild4,
/* 66516*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66519*/      OPC_MoveParent,
/* 66520*/      OPC_RecordChild5, // #4 = $CRn
/* 66521*/      OPC_MoveChild5,
/* 66522*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66525*/      OPC_MoveParent,
/* 66526*/      OPC_RecordChild6, // #5 = $CRm
/* 66527*/      OPC_MoveChild6,
/* 66528*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66531*/      OPC_MoveParent,
/* 66532*/      OPC_RecordChild7, // #6 = $opc2
/* 66533*/      OPC_MoveChild7,
/* 66534*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66537*/      OPC_MoveParent,
/* 66538*/      OPC_Scope, 22, /*->66562*/ // 2 children in Scope
/* 66540*/        OPC_CheckPatternPredicate, 43, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 66542*/        OPC_EmitMergeInputChains1_0,
/* 66543*/        OPC_EmitInteger, MVT::i32, 14, 
/* 66546*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66549*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::CDP), 0|OPFL_Chain,
                      8/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_void 1498:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) - Complexity = 26
                  // Dst: (CDP (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
/* 66562*/      /*Scope*/ 22, /*->66585*/
/* 66563*/        OPC_CheckPatternPredicate, 44, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 66565*/        OPC_EmitMergeInputChains1_0,
/* 66566*/        OPC_EmitInteger, MVT::i32, 14, 
/* 66569*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66572*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2CDP), 0|OPFL_Chain,
                      8/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_void 1498:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) - Complexity = 26
                  // Dst: (t2CDP (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
/* 66585*/      0, /*End of Scope*/
/* 66586*/    /*Scope*/ 79, /*->66666*/
/* 66587*/      OPC_CheckChild1Integer, 91|128,11/*1499*/, 
/* 66590*/      OPC_RecordChild2, // #1 = $cop
/* 66591*/      OPC_MoveChild2,
/* 66592*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66595*/      OPC_MoveParent,
/* 66596*/      OPC_RecordChild3, // #2 = $opc1
/* 66597*/      OPC_MoveChild3,
/* 66598*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66601*/      OPC_MoveParent,
/* 66602*/      OPC_RecordChild4, // #3 = $CRd
/* 66603*/      OPC_MoveChild4,
/* 66604*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66607*/      OPC_MoveParent,
/* 66608*/      OPC_RecordChild5, // #4 = $CRn
/* 66609*/      OPC_MoveChild5,
/* 66610*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66613*/      OPC_MoveParent,
/* 66614*/      OPC_RecordChild6, // #5 = $CRm
/* 66615*/      OPC_MoveChild6,
/* 66616*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66619*/      OPC_MoveParent,
/* 66620*/      OPC_RecordChild7, // #6 = $opc2
/* 66621*/      OPC_MoveChild7,
/* 66622*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66625*/      OPC_MoveParent,
/* 66626*/      OPC_Scope, 14, /*->66642*/ // 2 children in Scope
/* 66628*/        OPC_CheckPatternPredicate, 43, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 66630*/        OPC_EmitMergeInputChains1_0,
/* 66631*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::CDP2), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_void 1499:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) - Complexity = 26
                  // Dst: (CDP2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
/* 66642*/      /*Scope*/ 22, /*->66665*/
/* 66643*/        OPC_CheckPatternPredicate, 44, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 66645*/        OPC_EmitMergeInputChains1_0,
/* 66646*/        OPC_EmitInteger, MVT::i32, 14, 
/* 66649*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66652*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2CDP2), 0|OPFL_Chain,
                      8/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_void 1499:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) - Complexity = 26
                  // Dst: (t2CDP2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRd, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
/* 66665*/      0, /*End of Scope*/
/* 66666*/    /*Scope*/ 68, /*->66735*/
/* 66667*/      OPC_CheckChild1Integer, 114|128,11/*1522*/, 
/* 66670*/      OPC_RecordChild2, // #1 = $cop
/* 66671*/      OPC_MoveChild2,
/* 66672*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66675*/      OPC_MoveParent,
/* 66676*/      OPC_RecordChild3, // #2 = $CRd
/* 66677*/      OPC_MoveChild3,
/* 66678*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66681*/      OPC_MoveParent,
/* 66682*/      OPC_RecordChild4, // #3 = $addr
/* 66683*/      OPC_CheckChild4Type, MVT::i32,
/* 66685*/      OPC_Scope, 23, /*->66710*/ // 2 children in Scope
/* 66687*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 66689*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 66692*/        OPC_EmitMergeInputChains1_0,
/* 66693*/        OPC_EmitInteger, MVT::i32, 14, 
/* 66696*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66699*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::LDC_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1522:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (LDC_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 66710*/      /*Scope*/ 23, /*->66734*/
/* 66711*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 66713*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 66716*/        OPC_EmitMergeInputChains1_0,
/* 66717*/        OPC_EmitInteger, MVT::i32, 14, 
/* 66720*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66723*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2LDC_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1522:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2LDC_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 66734*/      0, /*End of Scope*/
/* 66735*/    /*Scope*/ 68, /*->66804*/
/* 66736*/      OPC_CheckChild1Integer, 117|128,11/*1525*/, 
/* 66739*/      OPC_RecordChild2, // #1 = $cop
/* 66740*/      OPC_MoveChild2,
/* 66741*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66744*/      OPC_MoveParent,
/* 66745*/      OPC_RecordChild3, // #2 = $CRd
/* 66746*/      OPC_MoveChild3,
/* 66747*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66750*/      OPC_MoveParent,
/* 66751*/      OPC_RecordChild4, // #3 = $addr
/* 66752*/      OPC_CheckChild4Type, MVT::i32,
/* 66754*/      OPC_Scope, 23, /*->66779*/ // 2 children in Scope
/* 66756*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 66758*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 66761*/        OPC_EmitMergeInputChains1_0,
/* 66762*/        OPC_EmitInteger, MVT::i32, 14, 
/* 66765*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66768*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::LDCL_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1525:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (LDCL_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 66779*/      /*Scope*/ 23, /*->66803*/
/* 66780*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 66782*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 66785*/        OPC_EmitMergeInputChains1_0,
/* 66786*/        OPC_EmitInteger, MVT::i32, 14, 
/* 66789*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66792*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2LDCL_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1525:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2LDCL_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 66803*/      0, /*End of Scope*/
/* 66804*/    /*Scope*/ 60, /*->66865*/
/* 66805*/      OPC_CheckChild1Integer, 115|128,11/*1523*/, 
/* 66808*/      OPC_RecordChild2, // #1 = $cop
/* 66809*/      OPC_MoveChild2,
/* 66810*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66813*/      OPC_MoveParent,
/* 66814*/      OPC_RecordChild3, // #2 = $CRd
/* 66815*/      OPC_MoveChild3,
/* 66816*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66819*/      OPC_MoveParent,
/* 66820*/      OPC_RecordChild4, // #3 = $addr
/* 66821*/      OPC_CheckChild4Type, MVT::i32,
/* 66823*/      OPC_Scope, 15, /*->66840*/ // 2 children in Scope
/* 66825*/        OPC_CheckPatternPredicate, 43, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 66827*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 66830*/        OPC_EmitMergeInputChains1_0,
/* 66831*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::LDC2_OFFSET), 0|OPFL_Chain,
                      4/*#Ops*/, 1, 2, 4, 5, 
                  // Src: (intrinsic_void 1523:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (LDC2_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 66840*/      /*Scope*/ 23, /*->66864*/
/* 66841*/        OPC_CheckPatternPredicate, 44, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 66843*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 66846*/        OPC_EmitMergeInputChains1_0,
/* 66847*/        OPC_EmitInteger, MVT::i32, 14, 
/* 66850*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66853*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2LDC2_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1523:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2LDC2_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 66864*/      0, /*End of Scope*/
/* 66865*/    /*Scope*/ 60, /*->66926*/
/* 66866*/      OPC_CheckChild1Integer, 116|128,11/*1524*/, 
/* 66869*/      OPC_RecordChild2, // #1 = $cop
/* 66870*/      OPC_MoveChild2,
/* 66871*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66874*/      OPC_MoveParent,
/* 66875*/      OPC_RecordChild3, // #2 = $CRd
/* 66876*/      OPC_MoveChild3,
/* 66877*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66880*/      OPC_MoveParent,
/* 66881*/      OPC_RecordChild4, // #3 = $addr
/* 66882*/      OPC_CheckChild4Type, MVT::i32,
/* 66884*/      OPC_Scope, 15, /*->66901*/ // 2 children in Scope
/* 66886*/        OPC_CheckPatternPredicate, 43, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 66888*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 66891*/        OPC_EmitMergeInputChains1_0,
/* 66892*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::LDC2L_OFFSET), 0|OPFL_Chain,
                      4/*#Ops*/, 1, 2, 4, 5, 
                  // Src: (intrinsic_void 1524:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (LDC2L_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 66901*/      /*Scope*/ 23, /*->66925*/
/* 66902*/        OPC_CheckPatternPredicate, 44, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 66904*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 66907*/        OPC_EmitMergeInputChains1_0,
/* 66908*/        OPC_EmitInteger, MVT::i32, 14, 
/* 66911*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66914*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2LDC2L_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1524:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2LDC2L_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 66925*/      0, /*End of Scope*/
/* 66926*/    /*Scope*/ 68, /*->66995*/
/* 66927*/      OPC_CheckChild1Integer, 35|128,14/*1827*/, 
/* 66930*/      OPC_RecordChild2, // #1 = $cop
/* 66931*/      OPC_MoveChild2,
/* 66932*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66935*/      OPC_MoveParent,
/* 66936*/      OPC_RecordChild3, // #2 = $CRd
/* 66937*/      OPC_MoveChild3,
/* 66938*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 66941*/      OPC_MoveParent,
/* 66942*/      OPC_RecordChild4, // #3 = $addr
/* 66943*/      OPC_CheckChild4Type, MVT::i32,
/* 66945*/      OPC_Scope, 23, /*->66970*/ // 2 children in Scope
/* 66947*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 66949*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 66952*/        OPC_EmitMergeInputChains1_0,
/* 66953*/        OPC_EmitInteger, MVT::i32, 14, 
/* 66956*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66959*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::STC_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1827:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (STC_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 66970*/      /*Scope*/ 23, /*->66994*/
/* 66971*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 66973*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 66976*/        OPC_EmitMergeInputChains1_0,
/* 66977*/        OPC_EmitInteger, MVT::i32, 14, 
/* 66980*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 66983*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STC_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1827:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2STC_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 66994*/      0, /*End of Scope*/
/* 66995*/    /*Scope*/ 68, /*->67064*/
/* 66996*/      OPC_CheckChild1Integer, 38|128,14/*1830*/, 
/* 66999*/      OPC_RecordChild2, // #1 = $cop
/* 67000*/      OPC_MoveChild2,
/* 67001*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67004*/      OPC_MoveParent,
/* 67005*/      OPC_RecordChild3, // #2 = $CRd
/* 67006*/      OPC_MoveChild3,
/* 67007*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67010*/      OPC_MoveParent,
/* 67011*/      OPC_RecordChild4, // #3 = $addr
/* 67012*/      OPC_CheckChild4Type, MVT::i32,
/* 67014*/      OPC_Scope, 23, /*->67039*/ // 2 children in Scope
/* 67016*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 67018*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 67021*/        OPC_EmitMergeInputChains1_0,
/* 67022*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67025*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67028*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::STCL_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1830:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (STCL_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 67039*/      /*Scope*/ 23, /*->67063*/
/* 67040*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 67042*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 67045*/        OPC_EmitMergeInputChains1_0,
/* 67046*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67049*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67052*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STCL_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1830:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2STCL_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 67063*/      0, /*End of Scope*/
/* 67064*/    /*Scope*/ 60, /*->67125*/
/* 67065*/      OPC_CheckChild1Integer, 36|128,14/*1828*/, 
/* 67068*/      OPC_RecordChild2, // #1 = $cop
/* 67069*/      OPC_MoveChild2,
/* 67070*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67073*/      OPC_MoveParent,
/* 67074*/      OPC_RecordChild3, // #2 = $CRd
/* 67075*/      OPC_MoveChild3,
/* 67076*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67079*/      OPC_MoveParent,
/* 67080*/      OPC_RecordChild4, // #3 = $addr
/* 67081*/      OPC_CheckChild4Type, MVT::i32,
/* 67083*/      OPC_Scope, 15, /*->67100*/ // 2 children in Scope
/* 67085*/        OPC_CheckPatternPredicate, 43, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 67087*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 67090*/        OPC_EmitMergeInputChains1_0,
/* 67091*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::STC2_OFFSET), 0|OPFL_Chain,
                      4/*#Ops*/, 1, 2, 4, 5, 
                  // Src: (intrinsic_void 1828:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (STC2_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 67100*/      /*Scope*/ 23, /*->67124*/
/* 67101*/        OPC_CheckPatternPredicate, 44, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 67103*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 67106*/        OPC_EmitMergeInputChains1_0,
/* 67107*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67110*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67113*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STC2_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1828:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2STC2_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 67124*/      0, /*End of Scope*/
/* 67125*/    /*Scope*/ 60, /*->67186*/
/* 67126*/      OPC_CheckChild1Integer, 37|128,14/*1829*/, 
/* 67129*/      OPC_RecordChild2, // #1 = $cop
/* 67130*/      OPC_MoveChild2,
/* 67131*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67134*/      OPC_MoveParent,
/* 67135*/      OPC_RecordChild3, // #2 = $CRd
/* 67136*/      OPC_MoveChild3,
/* 67137*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67140*/      OPC_MoveParent,
/* 67141*/      OPC_RecordChild4, // #3 = $addr
/* 67142*/      OPC_CheckChild4Type, MVT::i32,
/* 67144*/      OPC_Scope, 15, /*->67161*/ // 2 children in Scope
/* 67146*/        OPC_CheckPatternPredicate, 43, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 67148*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 67151*/        OPC_EmitMergeInputChains1_0,
/* 67152*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::STC2L_OFFSET), 0|OPFL_Chain,
                      4/*#Ops*/, 1, 2, 4, 5, 
                  // Src: (intrinsic_void 1829:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (STC2L_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 67161*/      /*Scope*/ 23, /*->67185*/
/* 67162*/        OPC_CheckPatternPredicate, 44, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 67164*/        OPC_CheckComplexPat, /*CP*/22, /*#*/3, // SelectAddrMode5:$addr #4 #5
/* 67167*/        OPC_EmitMergeInputChains1_0,
/* 67168*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67171*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67174*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2STC2L_OFFSET), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 2, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1829:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr) - Complexity = 23
                  // Dst: (t2STC2L_OFFSET (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$CRd, addrmode5:{ *:[i32] }:$addr)
/* 67185*/      0, /*End of Scope*/
/* 67186*/    /*Scope*/ 82, /*->67269*/
/* 67187*/      OPC_CheckChild1Integer, 120|128,11/*1528*/, 
/* 67190*/      OPC_RecordChild2, // #1 = $cop
/* 67191*/      OPC_MoveChild2,
/* 67192*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67195*/      OPC_MoveParent,
/* 67196*/      OPC_RecordChild3, // #2 = $opc1
/* 67197*/      OPC_MoveChild3,
/* 67198*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67201*/      OPC_MoveParent,
/* 67202*/      OPC_RecordChild4, // #3 = $Rt
/* 67203*/      OPC_RecordChild5, // #4 = $CRn
/* 67204*/      OPC_MoveChild5,
/* 67205*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67208*/      OPC_MoveParent,
/* 67209*/      OPC_RecordChild6, // #5 = $CRm
/* 67210*/      OPC_MoveChild6,
/* 67211*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67214*/      OPC_MoveParent,
/* 67215*/      OPC_RecordChild7, // #6 = $opc2
/* 67216*/      OPC_MoveChild7,
/* 67217*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67220*/      OPC_MoveParent,
/* 67221*/      OPC_Scope, 22, /*->67245*/ // 2 children in Scope
/* 67223*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 67225*/        OPC_EmitMergeInputChains1_0,
/* 67226*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67229*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67232*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::MCR), 0|OPFL_Chain,
                      8/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_void 1528:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (MCR (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
/* 67245*/      /*Scope*/ 22, /*->67268*/
/* 67246*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 67248*/        OPC_EmitMergeInputChains1_0,
/* 67249*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67252*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67255*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2MCR), 0|OPFL_Chain,
                      8/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_void 1528:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (t2MCR (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
/* 67268*/      0, /*End of Scope*/
/* 67269*/    /*Scope*/ 74, /*->67344*/
/* 67270*/      OPC_CheckChild1Integer, 121|128,11/*1529*/, 
/* 67273*/      OPC_RecordChild2, // #1 = $cop
/* 67274*/      OPC_MoveChild2,
/* 67275*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67278*/      OPC_MoveParent,
/* 67279*/      OPC_RecordChild3, // #2 = $opc1
/* 67280*/      OPC_MoveChild3,
/* 67281*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67284*/      OPC_MoveParent,
/* 67285*/      OPC_RecordChild4, // #3 = $Rt
/* 67286*/      OPC_RecordChild5, // #4 = $CRn
/* 67287*/      OPC_MoveChild5,
/* 67288*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67291*/      OPC_MoveParent,
/* 67292*/      OPC_RecordChild6, // #5 = $CRm
/* 67293*/      OPC_MoveChild6,
/* 67294*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67297*/      OPC_MoveParent,
/* 67298*/      OPC_RecordChild7, // #6 = $opc2
/* 67299*/      OPC_MoveChild7,
/* 67300*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 67303*/      OPC_MoveParent,
/* 67304*/      OPC_Scope, 14, /*->67320*/ // 2 children in Scope
/* 67306*/        OPC_CheckPatternPredicate, 43, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 67308*/        OPC_EmitMergeInputChains1_0,
/* 67309*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::MCR2), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_void 1529:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (MCR2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
/* 67320*/      /*Scope*/ 22, /*->67343*/
/* 67321*/        OPC_CheckPatternPredicate, 44, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 67323*/        OPC_EmitMergeInputChains1_0,
/* 67324*/        OPC_EmitInteger, MVT::i32, 14, 
/* 67327*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67330*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2MCR2), 0|OPFL_Chain,
                      8/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 8, 
                  // Src: (intrinsic_void 1529:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (t2MCR2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2)
/* 67343*/      0, /*End of Scope*/
/* 67344*/    /*Scope*/ 39|128,3/*423*/, /*->67769*/
/* 67346*/      OPC_CheckChild1Integer, 108|128,12/*1644*/, 
/* 67349*/      OPC_RecordChild2, // #1 = $base
/* 67350*/      OPC_CheckChild2Type, MVT::i32,
/* 67352*/      OPC_RecordChild3, // #2 = $offsets
/* 67353*/      OPC_Scope, 30, /*->67385*/ // 4 children in Scope
/* 67355*/        OPC_CheckChild3Type, MVT::v16i8,
/* 67357*/        OPC_RecordChild4, // #3 = $data
/* 67358*/        OPC_CheckChild4Type, MVT::v16i8,
/* 67360*/        OPC_MoveChild5,
/* 67361*/        OPC_CheckInteger, 8, 
/* 67363*/        OPC_MoveParent,
/* 67364*/        OPC_MoveChild6,
/* 67365*/        OPC_CheckInteger, 0, 
/* 67367*/        OPC_MoveParent,
/* 67368*/        OPC_EmitMergeInputChains1_0,
/* 67369*/        OPC_EmitInteger, MVT::i32, 0, 
/* 67372*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67375*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRB8_rq), 0|OPFL_Chain,
                      5/*#Ops*/, 3, 1, 2, 4, 5, 
                  // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, MQPR:{ *:[v16i8] }:$data, 8:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                  // Dst: (MVE_VSTRB8_rq MQPR:{ *:[v16i8] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets)
/* 67385*/      /*Scope*/ 9|128,1/*137*/, /*->67524*/
/* 67387*/        OPC_CheckChild3Type, MVT::v8i16,
/* 67389*/        OPC_RecordChild4, // #3 = $data
/* 67390*/        OPC_Scope, 79, /*->67471*/ // 2 children in Scope
/* 67392*/          OPC_CheckChild4Type, MVT::v8i16,
/* 67394*/          OPC_MoveChild5,
/* 67395*/          OPC_Scope, 24, /*->67421*/ // 2 children in Scope
/* 67397*/            OPC_CheckInteger, 8, 
/* 67399*/            OPC_MoveParent,
/* 67400*/            OPC_MoveChild6,
/* 67401*/            OPC_CheckInteger, 0, 
/* 67403*/            OPC_MoveParent,
/* 67404*/            OPC_EmitMergeInputChains1_0,
/* 67405*/            OPC_EmitInteger, MVT::i32, 0, 
/* 67408*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67411*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRB16_rq), 0|OPFL_Chain,
                          5/*#Ops*/, 3, 1, 2, 4, 5, 
                      // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8i16] }:$data, 8:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VSTRB16_rq MQPR:{ *:[v8i16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 67421*/          /*Scope*/ 48, /*->67470*/
/* 67422*/            OPC_CheckInteger, 16, 
/* 67424*/            OPC_MoveParent,
/* 67425*/            OPC_MoveChild6,
/* 67426*/            OPC_Scope, 20, /*->67448*/ // 2 children in Scope
/* 67428*/              OPC_CheckInteger, 0, 
/* 67430*/              OPC_MoveParent,
/* 67431*/              OPC_EmitMergeInputChains1_0,
/* 67432*/              OPC_EmitInteger, MVT::i32, 0, 
/* 67435*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67438*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRH16_rq_u), 0|OPFL_Chain,
                            5/*#Ops*/, 3, 1, 2, 4, 5, 
                        // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8i16] }:$data, 16:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                        // Dst: (MVE_VSTRH16_rq_u MQPR:{ *:[v8i16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 67448*/            /*Scope*/ 20, /*->67469*/
/* 67449*/              OPC_CheckInteger, 1, 
/* 67451*/              OPC_MoveParent,
/* 67452*/              OPC_EmitMergeInputChains1_0,
/* 67453*/              OPC_EmitInteger, MVT::i32, 0, 
/* 67456*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67459*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRH16_rq), 0|OPFL_Chain,
                            5/*#Ops*/, 3, 1, 2, 4, 5, 
                        // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8i16] }:$data, 16:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 18
                        // Dst: (MVE_VSTRH16_rq MQPR:{ *:[v8i16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 67469*/            0, /*End of Scope*/
/* 67470*/          0, /*End of Scope*/
/* 67471*/        /*Scope*/ 51, /*->67523*/
/* 67472*/          OPC_CheckChild4Type, MVT::v8f16,
/* 67474*/          OPC_MoveChild5,
/* 67475*/          OPC_CheckInteger, 16, 
/* 67477*/          OPC_MoveParent,
/* 67478*/          OPC_MoveChild6,
/* 67479*/          OPC_Scope, 20, /*->67501*/ // 2 children in Scope
/* 67481*/            OPC_CheckInteger, 0, 
/* 67483*/            OPC_MoveParent,
/* 67484*/            OPC_EmitMergeInputChains1_0,
/* 67485*/            OPC_EmitInteger, MVT::i32, 0, 
/* 67488*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67491*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRH16_rq_u), 0|OPFL_Chain,
                          5/*#Ops*/, 3, 1, 2, 4, 5, 
                      // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8f16] }:$data, 16:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VSTRH16_rq_u MQPR:{ *:[v8f16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 67501*/          /*Scope*/ 20, /*->67522*/
/* 67502*/            OPC_CheckInteger, 1, 
/* 67504*/            OPC_MoveParent,
/* 67505*/            OPC_EmitMergeInputChains1_0,
/* 67506*/            OPC_EmitInteger, MVT::i32, 0, 
/* 67509*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67512*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRH16_rq), 0|OPFL_Chain,
                          5/*#Ops*/, 3, 1, 2, 4, 5, 
                      // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8f16] }:$data, 16:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VSTRH16_rq MQPR:{ *:[v8f16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 67522*/          0, /*End of Scope*/
/* 67523*/        0, /*End of Scope*/
/* 67524*/      /*Scope*/ 59|128,1/*187*/, /*->67713*/
/* 67526*/        OPC_CheckChild3Type, MVT::v4i32,
/* 67528*/        OPC_RecordChild4, // #3 = $data
/* 67529*/        OPC_Scope, 0|128,1/*128*/, /*->67660*/ // 2 children in Scope
/* 67532*/          OPC_CheckChild4Type, MVT::v4i32,
/* 67534*/          OPC_MoveChild5,
/* 67535*/          OPC_Scope, 24, /*->67561*/ // 3 children in Scope
/* 67537*/            OPC_CheckInteger, 8, 
/* 67539*/            OPC_MoveParent,
/* 67540*/            OPC_MoveChild6,
/* 67541*/            OPC_CheckInteger, 0, 
/* 67543*/            OPC_MoveParent,
/* 67544*/            OPC_EmitMergeInputChains1_0,
/* 67545*/            OPC_EmitInteger, MVT::i32, 0, 
/* 67548*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67551*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRB32_rq), 0|OPFL_Chain,
                          5/*#Ops*/, 3, 1, 2, 4, 5, 
                      // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 8:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VSTRB32_rq MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 67561*/          /*Scope*/ 48, /*->67610*/
/* 67562*/            OPC_CheckInteger, 16, 
/* 67564*/            OPC_MoveParent,
/* 67565*/            OPC_MoveChild6,
/* 67566*/            OPC_Scope, 20, /*->67588*/ // 2 children in Scope
/* 67568*/              OPC_CheckInteger, 0, 
/* 67570*/              OPC_MoveParent,
/* 67571*/              OPC_EmitMergeInputChains1_0,
/* 67572*/              OPC_EmitInteger, MVT::i32, 0, 
/* 67575*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67578*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRH32_rq_u), 0|OPFL_Chain,
                            5/*#Ops*/, 3, 1, 2, 4, 5, 
                        // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 16:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                        // Dst: (MVE_VSTRH32_rq_u MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 67588*/            /*Scope*/ 20, /*->67609*/
/* 67589*/              OPC_CheckInteger, 1, 
/* 67591*/              OPC_MoveParent,
/* 67592*/              OPC_EmitMergeInputChains1_0,
/* 67593*/              OPC_EmitInteger, MVT::i32, 0, 
/* 67596*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67599*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRH32_rq), 0|OPFL_Chain,
                            5/*#Ops*/, 3, 1, 2, 4, 5, 
                        // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 16:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 18
                        // Dst: (MVE_VSTRH32_rq MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 67609*/            0, /*End of Scope*/
/* 67610*/          /*Scope*/ 48, /*->67659*/
/* 67611*/            OPC_CheckInteger, 32, 
/* 67613*/            OPC_MoveParent,
/* 67614*/            OPC_MoveChild6,
/* 67615*/            OPC_Scope, 20, /*->67637*/ // 2 children in Scope
/* 67617*/              OPC_CheckInteger, 0, 
/* 67619*/              OPC_MoveParent,
/* 67620*/              OPC_EmitMergeInputChains1_0,
/* 67621*/              OPC_EmitInteger, MVT::i32, 0, 
/* 67624*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67627*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRW32_rq_u), 0|OPFL_Chain,
                            5/*#Ops*/, 3, 1, 2, 4, 5, 
                        // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 32:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                        // Dst: (MVE_VSTRW32_rq_u MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 67637*/            /*Scope*/ 20, /*->67658*/
/* 67638*/              OPC_CheckInteger, 2, 
/* 67640*/              OPC_MoveParent,
/* 67641*/              OPC_EmitMergeInputChains1_0,
/* 67642*/              OPC_EmitInteger, MVT::i32, 0, 
/* 67645*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67648*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRW32_rq), 0|OPFL_Chain,
                            5/*#Ops*/, 3, 1, 2, 4, 5, 
                        // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 32:{ *:[i32] }, 2:{ *:[i32] }) - Complexity = 18
                        // Dst: (MVE_VSTRW32_rq MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 67658*/            0, /*End of Scope*/
/* 67659*/          0, /*End of Scope*/
/* 67660*/        /*Scope*/ 51, /*->67712*/
/* 67661*/          OPC_CheckChild4Type, MVT::v4f32,
/* 67663*/          OPC_MoveChild5,
/* 67664*/          OPC_CheckInteger, 32, 
/* 67666*/          OPC_MoveParent,
/* 67667*/          OPC_MoveChild6,
/* 67668*/          OPC_Scope, 20, /*->67690*/ // 2 children in Scope
/* 67670*/            OPC_CheckInteger, 0, 
/* 67672*/            OPC_MoveParent,
/* 67673*/            OPC_EmitMergeInputChains1_0,
/* 67674*/            OPC_EmitInteger, MVT::i32, 0, 
/* 67677*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67680*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRW32_rq_u), 0|OPFL_Chain,
                          5/*#Ops*/, 3, 1, 2, 4, 5, 
                      // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4f32] }:$data, 32:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VSTRW32_rq_u MQPR:{ *:[v4f32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 67690*/          /*Scope*/ 20, /*->67711*/
/* 67691*/            OPC_CheckInteger, 2, 
/* 67693*/            OPC_MoveParent,
/* 67694*/            OPC_EmitMergeInputChains1_0,
/* 67695*/            OPC_EmitInteger, MVT::i32, 0, 
/* 67698*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67701*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRW32_rq), 0|OPFL_Chain,
                          5/*#Ops*/, 3, 1, 2, 4, 5, 
                      // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4f32] }:$data, 32:{ *:[i32] }, 2:{ *:[i32] }) - Complexity = 18
                      // Dst: (MVE_VSTRW32_rq MQPR:{ *:[v4f32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 67711*/          0, /*End of Scope*/
/* 67712*/        0, /*End of Scope*/
/* 67713*/      /*Scope*/ 54, /*->67768*/
/* 67714*/        OPC_CheckChild3Type, MVT::v2i64,
/* 67716*/        OPC_RecordChild4, // #3 = $data
/* 67717*/        OPC_CheckChild4Type, MVT::v2i64,
/* 67719*/        OPC_MoveChild5,
/* 67720*/        OPC_CheckInteger, 64, 
/* 67722*/        OPC_MoveParent,
/* 67723*/        OPC_MoveChild6,
/* 67724*/        OPC_Scope, 20, /*->67746*/ // 2 children in Scope
/* 67726*/          OPC_CheckInteger, 0, 
/* 67728*/          OPC_MoveParent,
/* 67729*/          OPC_EmitMergeInputChains1_0,
/* 67730*/          OPC_EmitInteger, MVT::i32, 0, 
/* 67733*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67736*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRD64_rq_u), 0|OPFL_Chain,
                        5/*#Ops*/, 3, 1, 2, 4, 5, 
                    // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, MQPR:{ *:[v2i64] }:$data, 64:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 18
                    // Dst: (MVE_VSTRD64_rq_u MQPR:{ *:[v2i64] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
/* 67746*/        /*Scope*/ 20, /*->67767*/
/* 67747*/          OPC_CheckInteger, 3, 
/* 67749*/          OPC_MoveParent,
/* 67750*/          OPC_EmitMergeInputChains1_0,
/* 67751*/          OPC_EmitInteger, MVT::i32, 0, 
/* 67754*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 67757*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRD64_rq), 0|OPFL_Chain,
                        5/*#Ops*/, 3, 1, 2, 4, 5, 
                    // Src: (intrinsic_void 1644:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, MQPR:{ *:[v2i64] }:$data, 64:{ *:[i32] }, 3:{ *:[i32] }) - Complexity = 18
                    // Dst: (MVE_VSTRD64_rq MQPR:{ *:[v2i64] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
/* 67767*/        0, /*End of Scope*/
/* 67768*/      0, /*End of Scope*/
/* 67769*/    /*Scope*/ 39|128,3/*423*/, /*->68194*/
/* 67771*/      OPC_CheckChild1Integer, 109|128,12/*1645*/, 
/* 67774*/      OPC_RecordChild2, // #1 = $base
/* 67775*/      OPC_CheckChild2Type, MVT::i32,
/* 67777*/      OPC_RecordChild3, // #2 = $offsets
/* 67778*/      OPC_Scope, 30, /*->67810*/ // 4 children in Scope
/* 67780*/        OPC_CheckChild3Type, MVT::v16i8,
/* 67782*/        OPC_RecordChild4, // #3 = $data
/* 67783*/        OPC_CheckChild4Type, MVT::v16i8,
/* 67785*/        OPC_MoveChild5,
/* 67786*/        OPC_CheckInteger, 8, 
/* 67788*/        OPC_MoveParent,
/* 67789*/        OPC_MoveChild6,
/* 67790*/        OPC_CheckInteger, 0, 
/* 67792*/        OPC_MoveParent,
/* 67793*/        OPC_RecordChild7, // #4 = $pred
/* 67794*/        OPC_CheckChild7Type, MVT::v16i1,
/* 67796*/        OPC_EmitMergeInputChains1_0,
/* 67797*/        OPC_EmitInteger, MVT::i32, 1, 
/* 67800*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRB8_rq), 0|OPFL_Chain,
                      5/*#Ops*/, 3, 1, 2, 5, 4, 
                  // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, MQPR:{ *:[v16i8] }:$data, 8:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred) - Complexity = 18
                  // Dst: (MVE_VSTRB8_rq MQPR:{ *:[v16i8] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred)
/* 67810*/      /*Scope*/ 9|128,1/*137*/, /*->67949*/
/* 67812*/        OPC_CheckChild3Type, MVT::v8i16,
/* 67814*/        OPC_RecordChild4, // #3 = $data
/* 67815*/        OPC_Scope, 79, /*->67896*/ // 2 children in Scope
/* 67817*/          OPC_CheckChild4Type, MVT::v8i16,
/* 67819*/          OPC_MoveChild5,
/* 67820*/          OPC_Scope, 24, /*->67846*/ // 2 children in Scope
/* 67822*/            OPC_CheckInteger, 8, 
/* 67824*/            OPC_MoveParent,
/* 67825*/            OPC_MoveChild6,
/* 67826*/            OPC_CheckInteger, 0, 
/* 67828*/            OPC_MoveParent,
/* 67829*/            OPC_RecordChild7, // #4 = $pred
/* 67830*/            OPC_CheckChild7Type, MVT::v8i1,
/* 67832*/            OPC_EmitMergeInputChains1_0,
/* 67833*/            OPC_EmitInteger, MVT::i32, 1, 
/* 67836*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRB16_rq), 0|OPFL_Chain,
                          5/*#Ops*/, 3, 1, 2, 5, 4, 
                      // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8i16] }:$data, 8:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 18
                      // Dst: (MVE_VSTRB16_rq MQPR:{ *:[v8i16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 67846*/          /*Scope*/ 48, /*->67895*/
/* 67847*/            OPC_CheckInteger, 16, 
/* 67849*/            OPC_MoveParent,
/* 67850*/            OPC_MoveChild6,
/* 67851*/            OPC_Scope, 20, /*->67873*/ // 2 children in Scope
/* 67853*/              OPC_CheckInteger, 0, 
/* 67855*/              OPC_MoveParent,
/* 67856*/              OPC_RecordChild7, // #4 = $pred
/* 67857*/              OPC_CheckChild7Type, MVT::v8i1,
/* 67859*/              OPC_EmitMergeInputChains1_0,
/* 67860*/              OPC_EmitInteger, MVT::i32, 1, 
/* 67863*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRH16_rq_u), 0|OPFL_Chain,
                            5/*#Ops*/, 3, 1, 2, 5, 4, 
                        // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8i16] }:$data, 16:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 18
                        // Dst: (MVE_VSTRH16_rq_u MQPR:{ *:[v8i16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 67873*/            /*Scope*/ 20, /*->67894*/
/* 67874*/              OPC_CheckInteger, 1, 
/* 67876*/              OPC_MoveParent,
/* 67877*/              OPC_RecordChild7, // #4 = $pred
/* 67878*/              OPC_CheckChild7Type, MVT::v8i1,
/* 67880*/              OPC_EmitMergeInputChains1_0,
/* 67881*/              OPC_EmitInteger, MVT::i32, 1, 
/* 67884*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRH16_rq), 0|OPFL_Chain,
                            5/*#Ops*/, 3, 1, 2, 5, 4, 
                        // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8i16] }:$data, 16:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 18
                        // Dst: (MVE_VSTRH16_rq MQPR:{ *:[v8i16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 67894*/            0, /*End of Scope*/
/* 67895*/          0, /*End of Scope*/
/* 67896*/        /*Scope*/ 51, /*->67948*/
/* 67897*/          OPC_CheckChild4Type, MVT::v8f16,
/* 67899*/          OPC_MoveChild5,
/* 67900*/          OPC_CheckInteger, 16, 
/* 67902*/          OPC_MoveParent,
/* 67903*/          OPC_MoveChild6,
/* 67904*/          OPC_Scope, 20, /*->67926*/ // 2 children in Scope
/* 67906*/            OPC_CheckInteger, 0, 
/* 67908*/            OPC_MoveParent,
/* 67909*/            OPC_RecordChild7, // #4 = $pred
/* 67910*/            OPC_CheckChild7Type, MVT::v8i1,
/* 67912*/            OPC_EmitMergeInputChains1_0,
/* 67913*/            OPC_EmitInteger, MVT::i32, 1, 
/* 67916*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRH16_rq_u), 0|OPFL_Chain,
                          5/*#Ops*/, 3, 1, 2, 5, 4, 
                      // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8f16] }:$data, 16:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 18
                      // Dst: (MVE_VSTRH16_rq_u MQPR:{ *:[v8f16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 67926*/          /*Scope*/ 20, /*->67947*/
/* 67927*/            OPC_CheckInteger, 1, 
/* 67929*/            OPC_MoveParent,
/* 67930*/            OPC_RecordChild7, // #4 = $pred
/* 67931*/            OPC_CheckChild7Type, MVT::v8i1,
/* 67933*/            OPC_EmitMergeInputChains1_0,
/* 67934*/            OPC_EmitInteger, MVT::i32, 1, 
/* 67937*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRH16_rq), 0|OPFL_Chain,
                          5/*#Ops*/, 3, 1, 2, 5, 4, 
                      // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, MQPR:{ *:[v8f16] }:$data, 16:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 18
                      // Dst: (MVE_VSTRH16_rq MQPR:{ *:[v8f16] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 67947*/          0, /*End of Scope*/
/* 67948*/        0, /*End of Scope*/
/* 67949*/      /*Scope*/ 59|128,1/*187*/, /*->68138*/
/* 67951*/        OPC_CheckChild3Type, MVT::v4i32,
/* 67953*/        OPC_RecordChild4, // #3 = $data
/* 67954*/        OPC_Scope, 0|128,1/*128*/, /*->68085*/ // 2 children in Scope
/* 67957*/          OPC_CheckChild4Type, MVT::v4i32,
/* 67959*/          OPC_MoveChild5,
/* 67960*/          OPC_Scope, 24, /*->67986*/ // 3 children in Scope
/* 67962*/            OPC_CheckInteger, 8, 
/* 67964*/            OPC_MoveParent,
/* 67965*/            OPC_MoveChild6,
/* 67966*/            OPC_CheckInteger, 0, 
/* 67968*/            OPC_MoveParent,
/* 67969*/            OPC_RecordChild7, // #4 = $pred
/* 67970*/            OPC_CheckChild7Type, MVT::v4i1,
/* 67972*/            OPC_EmitMergeInputChains1_0,
/* 67973*/            OPC_EmitInteger, MVT::i32, 1, 
/* 67976*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRB32_rq), 0|OPFL_Chain,
                          5/*#Ops*/, 3, 1, 2, 5, 4, 
                      // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 8:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 18
                      // Dst: (MVE_VSTRB32_rq MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 67986*/          /*Scope*/ 48, /*->68035*/
/* 67987*/            OPC_CheckInteger, 16, 
/* 67989*/            OPC_MoveParent,
/* 67990*/            OPC_MoveChild6,
/* 67991*/            OPC_Scope, 20, /*->68013*/ // 2 children in Scope
/* 67993*/              OPC_CheckInteger, 0, 
/* 67995*/              OPC_MoveParent,
/* 67996*/              OPC_RecordChild7, // #4 = $pred
/* 67997*/              OPC_CheckChild7Type, MVT::v4i1,
/* 67999*/              OPC_EmitMergeInputChains1_0,
/* 68000*/              OPC_EmitInteger, MVT::i32, 1, 
/* 68003*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRH32_rq_u), 0|OPFL_Chain,
                            5/*#Ops*/, 3, 1, 2, 5, 4, 
                        // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 16:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 18
                        // Dst: (MVE_VSTRH32_rq_u MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 68013*/            /*Scope*/ 20, /*->68034*/
/* 68014*/              OPC_CheckInteger, 1, 
/* 68016*/              OPC_MoveParent,
/* 68017*/              OPC_RecordChild7, // #4 = $pred
/* 68018*/              OPC_CheckChild7Type, MVT::v4i1,
/* 68020*/              OPC_EmitMergeInputChains1_0,
/* 68021*/              OPC_EmitInteger, MVT::i32, 1, 
/* 68024*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRH32_rq), 0|OPFL_Chain,
                            5/*#Ops*/, 3, 1, 2, 5, 4, 
                        // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 16:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 18
                        // Dst: (MVE_VSTRH32_rq MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 68034*/            0, /*End of Scope*/
/* 68035*/          /*Scope*/ 48, /*->68084*/
/* 68036*/            OPC_CheckInteger, 32, 
/* 68038*/            OPC_MoveParent,
/* 68039*/            OPC_MoveChild6,
/* 68040*/            OPC_Scope, 20, /*->68062*/ // 2 children in Scope
/* 68042*/              OPC_CheckInteger, 0, 
/* 68044*/              OPC_MoveParent,
/* 68045*/              OPC_RecordChild7, // #4 = $pred
/* 68046*/              OPC_CheckChild7Type, MVT::v4i1,
/* 68048*/              OPC_EmitMergeInputChains1_0,
/* 68049*/              OPC_EmitInteger, MVT::i32, 1, 
/* 68052*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRW32_rq_u), 0|OPFL_Chain,
                            5/*#Ops*/, 3, 1, 2, 5, 4, 
                        // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 32:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 18
                        // Dst: (MVE_VSTRW32_rq_u MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 68062*/            /*Scope*/ 20, /*->68083*/
/* 68063*/              OPC_CheckInteger, 2, 
/* 68065*/              OPC_MoveParent,
/* 68066*/              OPC_RecordChild7, // #4 = $pred
/* 68067*/              OPC_CheckChild7Type, MVT::v4i1,
/* 68069*/              OPC_EmitMergeInputChains1_0,
/* 68070*/              OPC_EmitInteger, MVT::i32, 1, 
/* 68073*/              OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRW32_rq), 0|OPFL_Chain,
                            5/*#Ops*/, 3, 1, 2, 5, 4, 
                        // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4i32] }:$data, 32:{ *:[i32] }, 2:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 18
                        // Dst: (MVE_VSTRW32_rq MQPR:{ *:[v4i32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 68083*/            0, /*End of Scope*/
/* 68084*/          0, /*End of Scope*/
/* 68085*/        /*Scope*/ 51, /*->68137*/
/* 68086*/          OPC_CheckChild4Type, MVT::v4f32,
/* 68088*/          OPC_MoveChild5,
/* 68089*/          OPC_CheckInteger, 32, 
/* 68091*/          OPC_MoveParent,
/* 68092*/          OPC_MoveChild6,
/* 68093*/          OPC_Scope, 20, /*->68115*/ // 2 children in Scope
/* 68095*/            OPC_CheckInteger, 0, 
/* 68097*/            OPC_MoveParent,
/* 68098*/            OPC_RecordChild7, // #4 = $pred
/* 68099*/            OPC_CheckChild7Type, MVT::v4i1,
/* 68101*/            OPC_EmitMergeInputChains1_0,
/* 68102*/            OPC_EmitInteger, MVT::i32, 1, 
/* 68105*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRW32_rq_u), 0|OPFL_Chain,
                          5/*#Ops*/, 3, 1, 2, 5, 4, 
                      // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4f32] }:$data, 32:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 18
                      // Dst: (MVE_VSTRW32_rq_u MQPR:{ *:[v4f32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 68115*/          /*Scope*/ 20, /*->68136*/
/* 68116*/            OPC_CheckInteger, 2, 
/* 68118*/            OPC_MoveParent,
/* 68119*/            OPC_RecordChild7, // #4 = $pred
/* 68120*/            OPC_CheckChild7Type, MVT::v4i1,
/* 68122*/            OPC_EmitMergeInputChains1_0,
/* 68123*/            OPC_EmitInteger, MVT::i32, 1, 
/* 68126*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRW32_rq), 0|OPFL_Chain,
                          5/*#Ops*/, 3, 1, 2, 5, 4, 
                      // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, MQPR:{ *:[v4f32] }:$data, 32:{ *:[i32] }, 2:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 18
                      // Dst: (MVE_VSTRW32_rq MQPR:{ *:[v4f32] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 68136*/          0, /*End of Scope*/
/* 68137*/        0, /*End of Scope*/
/* 68138*/      /*Scope*/ 54, /*->68193*/
/* 68139*/        OPC_CheckChild3Type, MVT::v2i64,
/* 68141*/        OPC_RecordChild4, // #3 = $data
/* 68142*/        OPC_CheckChild4Type, MVT::v2i64,
/* 68144*/        OPC_MoveChild5,
/* 68145*/        OPC_CheckInteger, 64, 
/* 68147*/        OPC_MoveParent,
/* 68148*/        OPC_MoveChild6,
/* 68149*/        OPC_Scope, 20, /*->68171*/ // 2 children in Scope
/* 68151*/          OPC_CheckInteger, 0, 
/* 68153*/          OPC_MoveParent,
/* 68154*/          OPC_RecordChild7, // #4 = $pred
/* 68155*/          OPC_CheckChild7Type, MVT::v4i1,
/* 68157*/          OPC_EmitMergeInputChains1_0,
/* 68158*/          OPC_EmitInteger, MVT::i32, 1, 
/* 68161*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRD64_rq_u), 0|OPFL_Chain,
                        5/*#Ops*/, 3, 1, 2, 5, 4, 
                    // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, MQPR:{ *:[v2i64] }:$data, 64:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 18
                    // Dst: (MVE_VSTRD64_rq_u MQPR:{ *:[v2i64] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 68171*/        /*Scope*/ 20, /*->68192*/
/* 68172*/          OPC_CheckInteger, 3, 
/* 68174*/          OPC_MoveParent,
/* 68175*/          OPC_RecordChild7, // #4 = $pred
/* 68176*/          OPC_CheckChild7Type, MVT::v4i1,
/* 68178*/          OPC_EmitMergeInputChains1_0,
/* 68179*/          OPC_EmitInteger, MVT::i32, 1, 
/* 68182*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRD64_rq), 0|OPFL_Chain,
                        5/*#Ops*/, 3, 1, 2, 5, 4, 
                    // Src: (intrinsic_void 1645:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, MQPR:{ *:[v2i64] }:$data, 64:{ *:[i32] }, 3:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 18
                    // Dst: (MVE_VSTRD64_rq MQPR:{ *:[v2i64] }:$data, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 68192*/        0, /*End of Scope*/
/* 68193*/      0, /*End of Scope*/
/* 68194*/    /*Scope*/ 69, /*->68264*/
/* 68195*/      OPC_CheckChild1Integer, 122|128,11/*1530*/, 
/* 68198*/      OPC_RecordChild2, // #1 = $cop
/* 68199*/      OPC_MoveChild2,
/* 68200*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 68203*/      OPC_MoveParent,
/* 68204*/      OPC_RecordChild3, // #2 = $opc1
/* 68205*/      OPC_MoveChild3,
/* 68206*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 68209*/      OPC_MoveParent,
/* 68210*/      OPC_RecordChild4, // #3 = $Rt
/* 68211*/      OPC_RecordChild5, // #4 = $Rt2
/* 68212*/      OPC_RecordChild6, // #5 = $CRm
/* 68213*/      OPC_MoveChild6,
/* 68214*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 68217*/      OPC_MoveParent,
/* 68218*/      OPC_Scope, 21, /*->68241*/ // 2 children in Scope
/* 68220*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 68222*/        OPC_EmitMergeInputChains1_0,
/* 68223*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68226*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68229*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::MCRR), 0|OPFL_Chain,
                      7/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1530:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm) - Complexity = 17
                  // Dst: (MCRR (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm)
/* 68241*/      /*Scope*/ 21, /*->68263*/
/* 68242*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 68244*/        OPC_EmitMergeInputChains1_0,
/* 68245*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68248*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68251*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2MCRR), 0|OPFL_Chain,
                      7/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1530:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm) - Complexity = 17
                  // Dst: (t2MCRR (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm)
/* 68263*/      0, /*End of Scope*/
/* 68264*/    /*Scope*/ 61, /*->68326*/
/* 68265*/      OPC_CheckChild1Integer, 123|128,11/*1531*/, 
/* 68268*/      OPC_RecordChild2, // #1 = $cop
/* 68269*/      OPC_MoveChild2,
/* 68270*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 68273*/      OPC_MoveParent,
/* 68274*/      OPC_RecordChild3, // #2 = $opc1
/* 68275*/      OPC_MoveChild3,
/* 68276*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 68279*/      OPC_MoveParent,
/* 68280*/      OPC_RecordChild4, // #3 = $Rt
/* 68281*/      OPC_RecordChild5, // #4 = $Rt2
/* 68282*/      OPC_RecordChild6, // #5 = $CRm
/* 68283*/      OPC_MoveChild6,
/* 68284*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 68287*/      OPC_MoveParent,
/* 68288*/      OPC_Scope, 13, /*->68303*/ // 2 children in Scope
/* 68290*/        OPC_CheckPatternPredicate, 43, // (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops())
/* 68292*/        OPC_EmitMergeInputChains1_0,
/* 68293*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::MCRR2), 0|OPFL_Chain,
                      5/*#Ops*/, 1, 2, 3, 4, 5, 
                  // Src: (intrinsic_void 1531:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm) - Complexity = 17
                  // Dst: (MCRR2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPRnopc:{ *:[i32] }:$Rt, GPRnopc:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm)
/* 68303*/      /*Scope*/ 21, /*->68325*/
/* 68304*/        OPC_CheckPatternPredicate, 44, // (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops())
/* 68306*/        OPC_EmitMergeInputChains1_0,
/* 68307*/        OPC_EmitInteger, MVT::i32, 14, 
/* 68310*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 68313*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2MCRR2), 0|OPFL_Chain,
                      7/*#Ops*/, 1, 2, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 1531:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm) - Complexity = 17
                  // Dst: (t2MCRR2 (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, GPR:{ *:[i32] }:$Rt, GPR:{ *:[i32] }:$Rt2, (timm:{ *:[i32] }):$CRm)
/* 68325*/      0, /*End of Scope*/
/* 68326*/    /*Scope*/ 70, /*->68397*/
/* 68327*/      OPC_CheckChild1Integer, 54|128,14/*1846*/, 
/* 68330*/      OPC_Scope, 11, /*->68343*/ // 2 children in Scope
/* 68332*/        OPC_CheckChild2Integer, 121|128,1/*249*/, 
/* 68335*/        OPC_CheckPatternPredicate, 45, // (Subtarget->isThumb()) && (Subtarget->isTargetWindows())
/* 68337*/        OPC_EmitMergeInputChains1_0,
/* 68338*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t__brkdiv0), 0|OPFL_Chain,
                      0/*#Ops*/, 
                  // Src: (intrinsic_void 1846:{ *:[iPTR] }, 249:{ *:[i32] }) - Complexity = 13
                  // Dst: (t__brkdiv0)
/* 68343*/      /*Scope*/ 52, /*->68396*/
/* 68344*/        OPC_RecordChild2, // #1 = $imm16
/* 68345*/        OPC_MoveChild2,
/* 68346*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 68349*/        OPC_Scope, 14, /*->68365*/ // 3 children in Scope
/* 68351*/          OPC_CheckPredicate, 56, // Predicate_imm0_65535
/* 68353*/          OPC_MoveParent,
/* 68354*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 68356*/          OPC_EmitMergeInputChains1_0,
/* 68357*/          OPC_EmitConvertToTarget, 1,
/* 68359*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::UDF), 0|OPFL_Chain,
                        1/*#Ops*/, 2, 
                    // Src: (intrinsic_void 1846:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm16) - Complexity = 12
                    // Dst: (UDF (imm:{ *:[i32] }):$imm16)
/* 68365*/        /*Scope*/ 14, /*->68380*/
/* 68366*/          OPC_CheckPredicate, 57, // Predicate_imm0_255
/* 68368*/          OPC_MoveParent,
/* 68369*/          OPC_CheckPatternPredicate, 46, // (Subtarget->isThumb())
/* 68371*/          OPC_EmitMergeInputChains1_0,
/* 68372*/          OPC_EmitConvertToTarget, 1,
/* 68374*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::tUDF), 0|OPFL_Chain,
                        1/*#Ops*/, 2, 
                    // Src: (intrinsic_void 1846:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) - Complexity = 12
                    // Dst: (tUDF (imm:{ *:[i32] }):$imm8)
/* 68380*/        /*Scope*/ 14, /*->68395*/
/* 68381*/          OPC_CheckPredicate, 56, // Predicate_imm0_65535
/* 68383*/          OPC_MoveParent,
/* 68384*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 68386*/          OPC_EmitMergeInputChains1_0,
/* 68387*/          OPC_EmitConvertToTarget, 1,
/* 68389*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::t2UDF), 0|OPFL_Chain,
                        1/*#Ops*/, 2, 
                    // Src: (intrinsic_void 1846:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_65535>>:$imm16) - Complexity = 12
                    // Dst: (t2UDF (imm:{ *:[i32] }):$imm16)
/* 68395*/        0, /*End of Scope*/
/* 68396*/      0, /*End of Scope*/
/* 68397*/    /*Scope*/ 118|128,2/*374*/, /*->68773*/
/* 68399*/      OPC_CheckChild1Integer, 102|128,12/*1638*/, 
/* 68402*/      OPC_RecordChild2, // #1 = $addr
/* 68403*/      OPC_CheckChild2Type, MVT::i32,
/* 68405*/      OPC_RecordChild3, // #2 = $v0
/* 68406*/      OPC_Scope, 72, /*->68480*/ // 5 children in Scope
/* 68408*/        OPC_CheckChild3Type, MVT::v16i8,
/* 68410*/        OPC_RecordChild4, // #3 = $v1
/* 68411*/        OPC_CheckChild4Type, MVT::v16i8,
/* 68413*/        OPC_MoveChild5,
/* 68414*/        OPC_Scope, 31, /*->68447*/ // 2 children in Scope
/* 68416*/          OPC_CheckInteger, 0, 
/* 68418*/          OPC_MoveParent,
/* 68419*/          OPC_EmitMergeInputChains1_0,
/* 68420*/          OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 68423*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68426*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68429*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v4i64, 5/*#Ops*/, 4, 2, 5, 3, 6,  // Results = #7
/* 68440*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST20_8), 0|OPFL_Chain,
                        2/*#Ops*/, 7, 1, 
                    // Src: (intrinsic_void 1638:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v16i8] }:$v0, MQPR:{ *:[v16i8] }:$v1, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST20_8 (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v0, qsub_0:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v1, qsub_1:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 68447*/        /*Scope*/ 31, /*->68479*/
/* 68448*/          OPC_CheckInteger, 1, 
/* 68450*/          OPC_MoveParent,
/* 68451*/          OPC_EmitMergeInputChains1_0,
/* 68452*/          OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 68455*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68458*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68461*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v4i64, 5/*#Ops*/, 4, 2, 5, 3, 6,  // Results = #7
/* 68472*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST21_8), 0|OPFL_Chain,
                        2/*#Ops*/, 7, 1, 
                    // Src: (intrinsic_void 1638:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v16i8] }:$v0, MQPR:{ *:[v16i8] }:$v1, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST21_8 (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v0, qsub_0:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v1, qsub_1:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 68479*/        0, /*End of Scope*/
/* 68480*/      /*Scope*/ 72, /*->68553*/
/* 68481*/        OPC_CheckChild3Type, MVT::v8i16,
/* 68483*/        OPC_RecordChild4, // #3 = $v1
/* 68484*/        OPC_CheckChild4Type, MVT::v8i16,
/* 68486*/        OPC_MoveChild5,
/* 68487*/        OPC_Scope, 31, /*->68520*/ // 2 children in Scope
/* 68489*/          OPC_CheckInteger, 0, 
/* 68491*/          OPC_MoveParent,
/* 68492*/          OPC_EmitMergeInputChains1_0,
/* 68493*/          OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 68496*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68499*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68502*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v4i64, 5/*#Ops*/, 4, 2, 5, 3, 6,  // Results = #7
/* 68513*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST20_16), 0|OPFL_Chain,
                        2/*#Ops*/, 7, 1, 
                    // Src: (intrinsic_void 1638:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v8i16] }:$v0, MQPR:{ *:[v8i16] }:$v1, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST20_16 (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v0, qsub_0:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v1, qsub_1:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 68520*/        /*Scope*/ 31, /*->68552*/
/* 68521*/          OPC_CheckInteger, 1, 
/* 68523*/          OPC_MoveParent,
/* 68524*/          OPC_EmitMergeInputChains1_0,
/* 68525*/          OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 68528*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68531*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68534*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v4i64, 5/*#Ops*/, 4, 2, 5, 3, 6,  // Results = #7
/* 68545*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST21_16), 0|OPFL_Chain,
                        2/*#Ops*/, 7, 1, 
                    // Src: (intrinsic_void 1638:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v8i16] }:$v0, MQPR:{ *:[v8i16] }:$v1, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST21_16 (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v0, qsub_0:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v1, qsub_1:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 68552*/        0, /*End of Scope*/
/* 68553*/      /*Scope*/ 72, /*->68626*/
/* 68554*/        OPC_CheckChild3Type, MVT::v4i32,
/* 68556*/        OPC_RecordChild4, // #3 = $v1
/* 68557*/        OPC_CheckChild4Type, MVT::v4i32,
/* 68559*/        OPC_MoveChild5,
/* 68560*/        OPC_Scope, 31, /*->68593*/ // 2 children in Scope
/* 68562*/          OPC_CheckInteger, 0, 
/* 68564*/          OPC_MoveParent,
/* 68565*/          OPC_EmitMergeInputChains1_0,
/* 68566*/          OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 68569*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68572*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68575*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v4i64, 5/*#Ops*/, 4, 2, 5, 3, 6,  // Results = #7
/* 68586*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST20_32), 0|OPFL_Chain,
                        2/*#Ops*/, 7, 1, 
                    // Src: (intrinsic_void 1638:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v4i32] }:$v0, MQPR:{ *:[v4i32] }:$v1, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST20_32 (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v0, qsub_0:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v1, qsub_1:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 68593*/        /*Scope*/ 31, /*->68625*/
/* 68594*/          OPC_CheckInteger, 1, 
/* 68596*/          OPC_MoveParent,
/* 68597*/          OPC_EmitMergeInputChains1_0,
/* 68598*/          OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 68601*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68604*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68607*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v4i64, 5/*#Ops*/, 4, 2, 5, 3, 6,  // Results = #7
/* 68618*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST21_32), 0|OPFL_Chain,
                        2/*#Ops*/, 7, 1, 
                    // Src: (intrinsic_void 1638:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v4i32] }:$v0, MQPR:{ *:[v4i32] }:$v1, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST21_32 (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v0, qsub_0:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v1, qsub_1:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 68625*/        0, /*End of Scope*/
/* 68626*/      /*Scope*/ 72, /*->68699*/
/* 68627*/        OPC_CheckChild3Type, MVT::v8f16,
/* 68629*/        OPC_RecordChild4, // #3 = $v1
/* 68630*/        OPC_CheckChild4Type, MVT::v8f16,
/* 68632*/        OPC_MoveChild5,
/* 68633*/        OPC_Scope, 31, /*->68666*/ // 2 children in Scope
/* 68635*/          OPC_CheckInteger, 0, 
/* 68637*/          OPC_MoveParent,
/* 68638*/          OPC_EmitMergeInputChains1_0,
/* 68639*/          OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 68642*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68645*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68648*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v4i64, 5/*#Ops*/, 4, 2, 5, 3, 6,  // Results = #7
/* 68659*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST20_16), 0|OPFL_Chain,
                        2/*#Ops*/, 7, 1, 
                    // Src: (intrinsic_void 1638:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v8f16] }:$v0, MQPR:{ *:[v8f16] }:$v1, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST20_16 (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v0, qsub_0:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v1, qsub_1:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 68666*/        /*Scope*/ 31, /*->68698*/
/* 68667*/          OPC_CheckInteger, 1, 
/* 68669*/          OPC_MoveParent,
/* 68670*/          OPC_EmitMergeInputChains1_0,
/* 68671*/          OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 68674*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68677*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68680*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v4i64, 5/*#Ops*/, 4, 2, 5, 3, 6,  // Results = #7
/* 68691*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST21_16), 0|OPFL_Chain,
                        2/*#Ops*/, 7, 1, 
                    // Src: (intrinsic_void 1638:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v8f16] }:$v0, MQPR:{ *:[v8f16] }:$v1, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST21_16 (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v0, qsub_0:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v1, qsub_1:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 68698*/        0, /*End of Scope*/
/* 68699*/      /*Scope*/ 72, /*->68772*/
/* 68700*/        OPC_CheckChild3Type, MVT::v4f32,
/* 68702*/        OPC_RecordChild4, // #3 = $v1
/* 68703*/        OPC_CheckChild4Type, MVT::v4f32,
/* 68705*/        OPC_MoveChild5,
/* 68706*/        OPC_Scope, 31, /*->68739*/ // 2 children in Scope
/* 68708*/          OPC_CheckInteger, 0, 
/* 68710*/          OPC_MoveParent,
/* 68711*/          OPC_EmitMergeInputChains1_0,
/* 68712*/          OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 68715*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68718*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68721*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v4i64, 5/*#Ops*/, 4, 2, 5, 3, 6,  // Results = #7
/* 68732*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST20_32), 0|OPFL_Chain,
                        2/*#Ops*/, 7, 1, 
                    // Src: (intrinsic_void 1638:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v4f32] }:$v0, MQPR:{ *:[v4f32] }:$v1, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST20_32 (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v0, qsub_0:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v1, qsub_1:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 68739*/        /*Scope*/ 31, /*->68771*/
/* 68740*/          OPC_CheckInteger, 1, 
/* 68742*/          OPC_MoveParent,
/* 68743*/          OPC_EmitMergeInputChains1_0,
/* 68744*/          OPC_EmitInteger, MVT::i32, ARM::QQPRRegClassID,
/* 68747*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68750*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68753*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v4i64, 5/*#Ops*/, 4, 2, 5, 3, 6,  // Results = #7
/* 68764*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST21_32), 0|OPFL_Chain,
                        2/*#Ops*/, 7, 1, 
                    // Src: (intrinsic_void 1638:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v4f32] }:$v0, MQPR:{ *:[v4f32] }:$v1, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST21_32 (REG_SEQUENCE:{ *:[v4i64] } QQPR:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v0, qsub_0:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v1, qsub_1:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 68771*/        0, /*End of Scope*/
/* 68772*/      0, /*End of Scope*/
/* 68773*/    /*Scope*/ 33|128,7/*929*/, /*->69704*/
/* 68775*/      OPC_CheckChild1Integer, 103|128,12/*1639*/, 
/* 68778*/      OPC_RecordChild2, // #1 = $addr
/* 68779*/      OPC_CheckChild2Type, MVT::i32,
/* 68781*/      OPC_RecordChild3, // #2 = $v0
/* 68782*/      OPC_Scope, 54|128,1/*182*/, /*->68967*/ // 5 children in Scope
/* 68785*/        OPC_CheckChild3Type, MVT::v16i8,
/* 68787*/        OPC_RecordChild4, // #3 = $v1
/* 68788*/        OPC_CheckChild4Type, MVT::v16i8,
/* 68790*/        OPC_RecordChild5, // #4 = $v2
/* 68791*/        OPC_CheckChild5Type, MVT::v16i8,
/* 68793*/        OPC_RecordChild6, // #5 = $v3
/* 68794*/        OPC_CheckChild6Type, MVT::v16i8,
/* 68796*/        OPC_MoveChild7,
/* 68797*/        OPC_Scope, 41, /*->68840*/ // 4 children in Scope
/* 68799*/          OPC_CheckInteger, 0, 
/* 68801*/          OPC_MoveParent,
/* 68802*/          OPC_EmitMergeInputChains1_0,
/* 68803*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 68806*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68809*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68812*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 68815*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 68818*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 68833*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST40_8), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v16i8] }:$v0, MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, MQPR:{ *:[v16i8] }:$v3, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST40_8 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v0, qsub_0:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v1, qsub_1:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v2, qsub_2:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 68840*/        /*Scope*/ 41, /*->68882*/
/* 68841*/          OPC_CheckInteger, 1, 
/* 68843*/          OPC_MoveParent,
/* 68844*/          OPC_EmitMergeInputChains1_0,
/* 68845*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 68848*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68851*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68854*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 68857*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 68860*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 68875*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST41_8), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v16i8] }:$v0, MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, MQPR:{ *:[v16i8] }:$v3, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST41_8 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v0, qsub_0:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v1, qsub_1:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v2, qsub_2:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 68882*/        /*Scope*/ 41, /*->68924*/
/* 68883*/          OPC_CheckInteger, 2, 
/* 68885*/          OPC_MoveParent,
/* 68886*/          OPC_EmitMergeInputChains1_0,
/* 68887*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 68890*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68893*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68896*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 68899*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 68902*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 68917*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST42_8), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v16i8] }:$v0, MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, MQPR:{ *:[v16i8] }:$v3, 2:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST42_8 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v0, qsub_0:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v1, qsub_1:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v2, qsub_2:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 68924*/        /*Scope*/ 41, /*->68966*/
/* 68925*/          OPC_CheckInteger, 3, 
/* 68927*/          OPC_MoveParent,
/* 68928*/          OPC_EmitMergeInputChains1_0,
/* 68929*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 68932*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68935*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68938*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 68941*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 68944*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 68959*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST43_8), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v16i8] }:$v0, MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, MQPR:{ *:[v16i8] }:$v3, 3:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST43_8 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v0, qsub_0:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v1, qsub_1:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v2, qsub_2:{ *:[i32] }, v16i8:{ *:[v16i8] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 68966*/        0, /*End of Scope*/
/* 68967*/      /*Scope*/ 54|128,1/*182*/, /*->69151*/
/* 68969*/        OPC_CheckChild3Type, MVT::v8i16,
/* 68971*/        OPC_RecordChild4, // #3 = $v1
/* 68972*/        OPC_CheckChild4Type, MVT::v8i16,
/* 68974*/        OPC_RecordChild5, // #4 = $v2
/* 68975*/        OPC_CheckChild5Type, MVT::v8i16,
/* 68977*/        OPC_RecordChild6, // #5 = $v3
/* 68978*/        OPC_CheckChild6Type, MVT::v8i16,
/* 68980*/        OPC_MoveChild7,
/* 68981*/        OPC_Scope, 41, /*->69024*/ // 4 children in Scope
/* 68983*/          OPC_CheckInteger, 0, 
/* 68985*/          OPC_MoveParent,
/* 68986*/          OPC_EmitMergeInputChains1_0,
/* 68987*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 68990*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 68993*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 68996*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 68999*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69002*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69017*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST40_16), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v8i16] }:$v0, MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, MQPR:{ *:[v8i16] }:$v3, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST40_16 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v0, qsub_0:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v1, qsub_1:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v2, qsub_2:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69024*/        /*Scope*/ 41, /*->69066*/
/* 69025*/          OPC_CheckInteger, 1, 
/* 69027*/          OPC_MoveParent,
/* 69028*/          OPC_EmitMergeInputChains1_0,
/* 69029*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69032*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69035*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69038*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69041*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69044*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69059*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST41_16), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v8i16] }:$v0, MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, MQPR:{ *:[v8i16] }:$v3, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST41_16 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v0, qsub_0:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v1, qsub_1:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v2, qsub_2:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69066*/        /*Scope*/ 41, /*->69108*/
/* 69067*/          OPC_CheckInteger, 2, 
/* 69069*/          OPC_MoveParent,
/* 69070*/          OPC_EmitMergeInputChains1_0,
/* 69071*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69074*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69077*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69080*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69083*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69086*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69101*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST42_16), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v8i16] }:$v0, MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, MQPR:{ *:[v8i16] }:$v3, 2:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST42_16 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v0, qsub_0:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v1, qsub_1:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v2, qsub_2:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69108*/        /*Scope*/ 41, /*->69150*/
/* 69109*/          OPC_CheckInteger, 3, 
/* 69111*/          OPC_MoveParent,
/* 69112*/          OPC_EmitMergeInputChains1_0,
/* 69113*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69116*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69119*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69122*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69125*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69128*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69143*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST43_16), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v8i16] }:$v0, MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, MQPR:{ *:[v8i16] }:$v3, 3:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST43_16 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v0, qsub_0:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v1, qsub_1:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v2, qsub_2:{ *:[i32] }, v8i16:{ *:[v8i16] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69150*/        0, /*End of Scope*/
/* 69151*/      /*Scope*/ 54|128,1/*182*/, /*->69335*/
/* 69153*/        OPC_CheckChild3Type, MVT::v4i32,
/* 69155*/        OPC_RecordChild4, // #3 = $v1
/* 69156*/        OPC_CheckChild4Type, MVT::v4i32,
/* 69158*/        OPC_RecordChild5, // #4 = $v2
/* 69159*/        OPC_CheckChild5Type, MVT::v4i32,
/* 69161*/        OPC_RecordChild6, // #5 = $v3
/* 69162*/        OPC_CheckChild6Type, MVT::v4i32,
/* 69164*/        OPC_MoveChild7,
/* 69165*/        OPC_Scope, 41, /*->69208*/ // 4 children in Scope
/* 69167*/          OPC_CheckInteger, 0, 
/* 69169*/          OPC_MoveParent,
/* 69170*/          OPC_EmitMergeInputChains1_0,
/* 69171*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69174*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69177*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69180*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69183*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69186*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69201*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST40_32), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v4i32] }:$v0, MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, MQPR:{ *:[v4i32] }:$v3, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST40_32 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v0, qsub_0:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v1, qsub_1:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v2, qsub_2:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69208*/        /*Scope*/ 41, /*->69250*/
/* 69209*/          OPC_CheckInteger, 1, 
/* 69211*/          OPC_MoveParent,
/* 69212*/          OPC_EmitMergeInputChains1_0,
/* 69213*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69216*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69219*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69222*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69225*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69228*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69243*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST41_32), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v4i32] }:$v0, MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, MQPR:{ *:[v4i32] }:$v3, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST41_32 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v0, qsub_0:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v1, qsub_1:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v2, qsub_2:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69250*/        /*Scope*/ 41, /*->69292*/
/* 69251*/          OPC_CheckInteger, 2, 
/* 69253*/          OPC_MoveParent,
/* 69254*/          OPC_EmitMergeInputChains1_0,
/* 69255*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69258*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69261*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69264*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69267*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69270*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69285*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST42_32), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v4i32] }:$v0, MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, MQPR:{ *:[v4i32] }:$v3, 2:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST42_32 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v0, qsub_0:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v1, qsub_1:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v2, qsub_2:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69292*/        /*Scope*/ 41, /*->69334*/
/* 69293*/          OPC_CheckInteger, 3, 
/* 69295*/          OPC_MoveParent,
/* 69296*/          OPC_EmitMergeInputChains1_0,
/* 69297*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69300*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69303*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69306*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69309*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69312*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69327*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST43_32), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v4i32] }:$v0, MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, MQPR:{ *:[v4i32] }:$v3, 3:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST43_32 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v0, qsub_0:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v1, qsub_1:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v2, qsub_2:{ *:[i32] }, v4i32:{ *:[v4i32] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69334*/        0, /*End of Scope*/
/* 69335*/      /*Scope*/ 54|128,1/*182*/, /*->69519*/
/* 69337*/        OPC_CheckChild3Type, MVT::v8f16,
/* 69339*/        OPC_RecordChild4, // #3 = $v1
/* 69340*/        OPC_CheckChild4Type, MVT::v8f16,
/* 69342*/        OPC_RecordChild5, // #4 = $v2
/* 69343*/        OPC_CheckChild5Type, MVT::v8f16,
/* 69345*/        OPC_RecordChild6, // #5 = $v3
/* 69346*/        OPC_CheckChild6Type, MVT::v8f16,
/* 69348*/        OPC_MoveChild7,
/* 69349*/        OPC_Scope, 41, /*->69392*/ // 4 children in Scope
/* 69351*/          OPC_CheckInteger, 0, 
/* 69353*/          OPC_MoveParent,
/* 69354*/          OPC_EmitMergeInputChains1_0,
/* 69355*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69358*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69361*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69364*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69367*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69370*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69385*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST40_16), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v8f16] }:$v0, MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, MQPR:{ *:[v8f16] }:$v3, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST40_16 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v0, qsub_0:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v1, qsub_1:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v2, qsub_2:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69392*/        /*Scope*/ 41, /*->69434*/
/* 69393*/          OPC_CheckInteger, 1, 
/* 69395*/          OPC_MoveParent,
/* 69396*/          OPC_EmitMergeInputChains1_0,
/* 69397*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69400*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69403*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69406*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69409*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69412*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69427*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST41_16), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v8f16] }:$v0, MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, MQPR:{ *:[v8f16] }:$v3, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST41_16 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v0, qsub_0:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v1, qsub_1:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v2, qsub_2:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69434*/        /*Scope*/ 41, /*->69476*/
/* 69435*/          OPC_CheckInteger, 2, 
/* 69437*/          OPC_MoveParent,
/* 69438*/          OPC_EmitMergeInputChains1_0,
/* 69439*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69442*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69445*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69448*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69451*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69454*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69469*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST42_16), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v8f16] }:$v0, MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, MQPR:{ *:[v8f16] }:$v3, 2:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST42_16 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v0, qsub_0:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v1, qsub_1:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v2, qsub_2:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69476*/        /*Scope*/ 41, /*->69518*/
/* 69477*/          OPC_CheckInteger, 3, 
/* 69479*/          OPC_MoveParent,
/* 69480*/          OPC_EmitMergeInputChains1_0,
/* 69481*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69484*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69487*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69490*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69493*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69496*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69511*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST43_16), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v8f16] }:$v0, MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, MQPR:{ *:[v8f16] }:$v3, 3:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST43_16 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v0, qsub_0:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v1, qsub_1:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v2, qsub_2:{ *:[i32] }, v8f16:{ *:[v8f16] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69518*/        0, /*End of Scope*/
/* 69519*/      /*Scope*/ 54|128,1/*182*/, /*->69703*/
/* 69521*/        OPC_CheckChild3Type, MVT::v4f32,
/* 69523*/        OPC_RecordChild4, // #3 = $v1
/* 69524*/        OPC_CheckChild4Type, MVT::v4f32,
/* 69526*/        OPC_RecordChild5, // #4 = $v2
/* 69527*/        OPC_CheckChild5Type, MVT::v4f32,
/* 69529*/        OPC_RecordChild6, // #5 = $v3
/* 69530*/        OPC_CheckChild6Type, MVT::v4f32,
/* 69532*/        OPC_MoveChild7,
/* 69533*/        OPC_Scope, 41, /*->69576*/ // 4 children in Scope
/* 69535*/          OPC_CheckInteger, 0, 
/* 69537*/          OPC_MoveParent,
/* 69538*/          OPC_EmitMergeInputChains1_0,
/* 69539*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69542*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69545*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69548*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69551*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69554*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69569*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST40_32), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v4f32] }:$v0, MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, MQPR:{ *:[v4f32] }:$v3, 0:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST40_32 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v0, qsub_0:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v1, qsub_1:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v2, qsub_2:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69576*/        /*Scope*/ 41, /*->69618*/
/* 69577*/          OPC_CheckInteger, 1, 
/* 69579*/          OPC_MoveParent,
/* 69580*/          OPC_EmitMergeInputChains1_0,
/* 69581*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69584*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69587*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69590*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69593*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69596*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69611*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST41_32), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v4f32] }:$v0, MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, MQPR:{ *:[v4f32] }:$v3, 1:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST41_32 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v0, qsub_0:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v1, qsub_1:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v2, qsub_2:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69618*/        /*Scope*/ 41, /*->69660*/
/* 69619*/          OPC_CheckInteger, 2, 
/* 69621*/          OPC_MoveParent,
/* 69622*/          OPC_EmitMergeInputChains1_0,
/* 69623*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69626*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69629*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69632*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69635*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69638*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69653*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST42_32), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v4f32] }:$v0, MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, MQPR:{ *:[v4f32] }:$v3, 2:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST42_32 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v0, qsub_0:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v1, qsub_1:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v2, qsub_2:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69660*/        /*Scope*/ 41, /*->69702*/
/* 69661*/          OPC_CheckInteger, 3, 
/* 69663*/          OPC_MoveParent,
/* 69664*/          OPC_EmitMergeInputChains1_0,
/* 69665*/          OPC_EmitInteger, MVT::i32, ARM::QQQQPRRegClassID,
/* 69668*/          OPC_EmitInteger, MVT::i32, ARM::qsub_0,
/* 69671*/          OPC_EmitInteger, MVT::i32, ARM::qsub_1,
/* 69674*/          OPC_EmitInteger, MVT::i32, ARM::qsub_2,
/* 69677*/          OPC_EmitInteger, MVT::i32, ARM::qsub_3,
/* 69680*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                        MVT::v8i64, 9/*#Ops*/, 6, 2, 7, 3, 8, 4, 9, 5, 10,  // Results = #11
/* 69695*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VST43_32), 0|OPFL_Chain,
                        2/*#Ops*/, 11, 1, 
                    // Src: (intrinsic_void 1639:{ *:[iPTR] }, i32:{ *:[i32] }:$addr, MQPR:{ *:[v4f32] }:$v0, MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, MQPR:{ *:[v4f32] }:$v3, 3:{ *:[i32] }) - Complexity = 13
                    // Dst: (MVE_VST43_32 (REG_SEQUENCE:{ *:[v8i64] } QQQQPR:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v0, qsub_0:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v1, qsub_1:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v2, qsub_2:{ *:[i32] }, v4f32:{ *:[v4f32] }:$v3, qsub_3:{ *:[i32] }), t2_addr_offset_none:{ *:[i32] }:$addr)
/* 69702*/        0, /*End of Scope*/
/* 69703*/      0, /*End of Scope*/
/* 69704*/    /*Scope*/ 79, /*->69784*/
/* 69705*/      OPC_CheckChild1Integer, 110|128,11/*1518*/, 
/* 69708*/      OPC_RecordChild2, // #1 = $imm
/* 69709*/      OPC_MoveChild2,
/* 69710*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69713*/      OPC_Scope, 22, /*->69737*/ // 3 children in Scope
/* 69715*/        OPC_CheckPredicate, 58, // Predicate_imm0_239
/* 69717*/        OPC_MoveParent,
/* 69718*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 69720*/        OPC_EmitMergeInputChains1_0,
/* 69721*/        OPC_EmitConvertToTarget, 1,
/* 69723*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69726*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69729*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::HINT), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 1518:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_239>>:$imm) - Complexity = 12
                  // Dst: (HINT (imm:{ *:[i32] }):$imm)
/* 69737*/      /*Scope*/ 22, /*->69760*/
/* 69738*/        OPC_CheckPredicate, 33, // Predicate_imm0_15
/* 69740*/        OPC_MoveParent,
/* 69741*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasV6MOps()) && (Subtarget->isThumb())
/* 69743*/        OPC_EmitMergeInputChains1_0,
/* 69744*/        OPC_EmitConvertToTarget, 1,
/* 69746*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69749*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69752*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::tHINT), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 1518:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm) - Complexity = 12
                  // Dst: (tHINT (imm:{ *:[i32] }):$imm)
/* 69760*/      /*Scope*/ 22, /*->69783*/
/* 69761*/        OPC_CheckPredicate, 58, // Predicate_imm0_239
/* 69763*/        OPC_MoveParent,
/* 69764*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 69766*/        OPC_EmitMergeInputChains1_0,
/* 69767*/        OPC_EmitConvertToTarget, 1,
/* 69769*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69772*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69775*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2HINT), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 1518:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_239>>:$imm) - Complexity = 12
                  // Dst: (t2HINT (imm:{ *:[i32] }):$imm)
/* 69783*/      0, /*End of Scope*/
/* 69784*/    /*Scope*/ 53, /*->69838*/
/* 69785*/      OPC_CheckChild1Integer, 105|128,11/*1513*/, 
/* 69788*/      OPC_RecordChild2, // #1 = $opt
/* 69789*/      OPC_MoveChild2,
/* 69790*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69793*/      OPC_CheckPredicate, 33, // Predicate_imm0_15
/* 69795*/      OPC_MoveParent,
/* 69796*/      OPC_Scope, 19, /*->69817*/ // 2 children in Scope
/* 69798*/        OPC_CheckPatternPredicate, 48, // (Subtarget->hasV7Ops()) && (!Subtarget->isThumb())
/* 69800*/        OPC_EmitMergeInputChains1_0,
/* 69801*/        OPC_EmitConvertToTarget, 1,
/* 69803*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69806*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69809*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::DBG), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 1513:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (DBG (imm:{ *:[i32] }):$opt)
/* 69817*/      /*Scope*/ 19, /*->69837*/
/* 69818*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 69820*/        OPC_EmitMergeInputChains1_0,
/* 69821*/        OPC_EmitConvertToTarget, 1,
/* 69823*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69826*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69829*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2DBG), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 1513:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (t2DBG (imm:{ *:[i32] }):$opt)
/* 69837*/      0, /*End of Scope*/
/* 69838*/    /*Scope*/ 45, /*->69884*/
/* 69839*/      OPC_CheckChild1Integer, 106|128,11/*1514*/, 
/* 69842*/      OPC_RecordChild2, // #1 = $opt
/* 69843*/      OPC_MoveChild2,
/* 69844*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69847*/      OPC_CheckPredicate, 33, // Predicate_imm0_15
/* 69849*/      OPC_MoveParent,
/* 69850*/      OPC_Scope, 11, /*->69863*/ // 2 children in Scope
/* 69852*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasDataBarrier()) && (!Subtarget->isThumb())
/* 69854*/        OPC_EmitMergeInputChains1_0,
/* 69855*/        OPC_EmitConvertToTarget, 1,
/* 69857*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::DMB), 0|OPFL_Chain,
                      1/*#Ops*/, 2, 
                  // Src: (intrinsic_void 1514:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (DMB (imm:{ *:[i32] }):$opt)
/* 69863*/      /*Scope*/ 19, /*->69883*/
/* 69864*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasDataBarrier()) && (Subtarget->isThumb())
/* 69866*/        OPC_EmitMergeInputChains1_0,
/* 69867*/        OPC_EmitConvertToTarget, 1,
/* 69869*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69872*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69875*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2DMB), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 1514:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (t2DMB (imm:{ *:[i32] }):$opt)
/* 69883*/      0, /*End of Scope*/
/* 69884*/    /*Scope*/ 45, /*->69930*/
/* 69885*/      OPC_CheckChild1Integer, 107|128,11/*1515*/, 
/* 69888*/      OPC_RecordChild2, // #1 = $opt
/* 69889*/      OPC_MoveChild2,
/* 69890*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69893*/      OPC_CheckPredicate, 33, // Predicate_imm0_15
/* 69895*/      OPC_MoveParent,
/* 69896*/      OPC_Scope, 11, /*->69909*/ // 2 children in Scope
/* 69898*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasDataBarrier()) && (!Subtarget->isThumb())
/* 69900*/        OPC_EmitMergeInputChains1_0,
/* 69901*/        OPC_EmitConvertToTarget, 1,
/* 69903*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::DSB), 0|OPFL_Chain,
                      1/*#Ops*/, 2, 
                  // Src: (intrinsic_void 1515:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (DSB (imm:{ *:[i32] }):$opt)
/* 69909*/      /*Scope*/ 19, /*->69929*/
/* 69910*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasDataBarrier()) && (Subtarget->isThumb())
/* 69912*/        OPC_EmitMergeInputChains1_0,
/* 69913*/        OPC_EmitConvertToTarget, 1,
/* 69915*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69918*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69921*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2DSB), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 1515:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (t2DSB (imm:{ *:[i32] }):$opt)
/* 69929*/      0, /*End of Scope*/
/* 69930*/    /*Scope*/ 45, /*->69976*/
/* 69931*/      OPC_CheckChild1Integer, 111|128,11/*1519*/, 
/* 69934*/      OPC_RecordChild2, // #1 = $opt
/* 69935*/      OPC_MoveChild2,
/* 69936*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69939*/      OPC_CheckPredicate, 33, // Predicate_imm0_15
/* 69941*/      OPC_MoveParent,
/* 69942*/      OPC_Scope, 11, /*->69955*/ // 2 children in Scope
/* 69944*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasDataBarrier()) && (!Subtarget->isThumb())
/* 69946*/        OPC_EmitMergeInputChains1_0,
/* 69947*/        OPC_EmitConvertToTarget, 1,
/* 69949*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::ISB), 0|OPFL_Chain,
                      1/*#Ops*/, 2, 
                  // Src: (intrinsic_void 1519:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (ISB (imm:{ *:[i32] }):$opt)
/* 69955*/      /*Scope*/ 19, /*->69975*/
/* 69956*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasDataBarrier()) && (Subtarget->isThumb())
/* 69958*/        OPC_EmitMergeInputChains1_0,
/* 69959*/        OPC_EmitConvertToTarget, 1,
/* 69961*/        OPC_EmitInteger, MVT::i32, 14, 
/* 69964*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 69967*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2ISB), 0|OPFL_Chain,
                      3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_void 1519:{ *:[iPTR] }, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$opt) - Complexity = 12
                  // Dst: (t2ISB (imm:{ *:[i32] }):$opt)
/* 69975*/      0, /*End of Scope*/
/* 69976*/    /*Scope*/ 118, /*->70095*/
/* 69977*/      OPC_CheckChild1Integer, 104|128,12/*1640*/, 
/* 69980*/      OPC_RecordChild2, // #1 = $addr
/* 69981*/      OPC_Scope, 55, /*->70038*/ // 2 children in Scope
/* 69983*/        OPC_CheckChild2Type, MVT::v4i32,
/* 69985*/        OPC_RecordChild3, // #2 = $offset
/* 69986*/        OPC_MoveChild3,
/* 69987*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69990*/        OPC_MoveParent,
/* 69991*/        OPC_RecordChild4, // #3 = $data
/* 69992*/        OPC_Scope, 21, /*->70015*/ // 2 children in Scope
/* 69994*/          OPC_CheckChild4Type, MVT::v4i32,
/* 69996*/          OPC_EmitMergeInputChains1_0,
/* 69997*/          OPC_EmitConvertToTarget, 2,
/* 69999*/          OPC_EmitInteger, MVT::i32, 0, 
/* 70002*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70005*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRW32_qi), 0|OPFL_Chain,
                        5/*#Ops*/, 3, 1, 4, 5, 6, 
                    // Src: (intrinsic_void 1640:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4i32] }:$data) - Complexity = 11
                    // Dst: (MVE_VSTRW32_qi MQPR:{ *:[v4i32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
/* 70015*/        /*Scope*/ 21, /*->70037*/
/* 70016*/          OPC_CheckChild4Type, MVT::v4f32,
/* 70018*/          OPC_EmitMergeInputChains1_0,
/* 70019*/          OPC_EmitConvertToTarget, 2,
/* 70021*/          OPC_EmitInteger, MVT::i32, 0, 
/* 70024*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70027*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRW32_qi), 0|OPFL_Chain,
                        5/*#Ops*/, 3, 1, 4, 5, 6, 
                    // Src: (intrinsic_void 1640:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4f32] }:$data) - Complexity = 11
                    // Dst: (MVE_VSTRW32_qi MQPR:{ *:[v4f32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
/* 70037*/        0, /*End of Scope*/
/* 70038*/      /*Scope*/ 55, /*->70094*/
/* 70039*/        OPC_CheckChild2Type, MVT::v2i64,
/* 70041*/        OPC_RecordChild3, // #2 = $offset
/* 70042*/        OPC_MoveChild3,
/* 70043*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 70046*/        OPC_MoveParent,
/* 70047*/        OPC_RecordChild4, // #3 = $data
/* 70048*/        OPC_Scope, 21, /*->70071*/ // 2 children in Scope
/* 70050*/          OPC_CheckChild4Type, MVT::v2i64,
/* 70052*/          OPC_EmitMergeInputChains1_0,
/* 70053*/          OPC_EmitConvertToTarget, 2,
/* 70055*/          OPC_EmitInteger, MVT::i32, 0, 
/* 70058*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70061*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRD64_qi), 0|OPFL_Chain,
                        5/*#Ops*/, 3, 1, 4, 5, 6, 
                    // Src: (intrinsic_void 1640:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2i64] }:$data) - Complexity = 11
                    // Dst: (MVE_VSTRD64_qi MQPR:{ *:[v2i64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
/* 70071*/        /*Scope*/ 21, /*->70093*/
/* 70072*/          OPC_CheckChild4Type, MVT::v2f64,
/* 70074*/          OPC_EmitMergeInputChains1_0,
/* 70075*/          OPC_EmitConvertToTarget, 2,
/* 70077*/          OPC_EmitInteger, MVT::i32, 0, 
/* 70080*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70083*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRD64_qi), 0|OPFL_Chain,
                        5/*#Ops*/, 3, 1, 4, 5, 6, 
                    // Src: (intrinsic_void 1640:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2f64] }:$data) - Complexity = 11
                    // Dst: (MVE_VSTRD64_qi MQPR:{ *:[v2f64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
/* 70093*/        0, /*End of Scope*/
/* 70094*/      0, /*End of Scope*/
/* 70095*/    /*Scope*/ 118, /*->70214*/
/* 70096*/      OPC_CheckChild1Integer, 105|128,12/*1641*/, 
/* 70099*/      OPC_RecordChild2, // #1 = $addr
/* 70100*/      OPC_Scope, 55, /*->70157*/ // 2 children in Scope
/* 70102*/        OPC_CheckChild2Type, MVT::v4i32,
/* 70104*/        OPC_RecordChild3, // #2 = $offset
/* 70105*/        OPC_MoveChild3,
/* 70106*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 70109*/        OPC_MoveParent,
/* 70110*/        OPC_RecordChild4, // #3 = $data
/* 70111*/        OPC_Scope, 21, /*->70134*/ // 2 children in Scope
/* 70113*/          OPC_CheckChild4Type, MVT::v4i32,
/* 70115*/          OPC_RecordChild5, // #4 = $pred
/* 70116*/          OPC_CheckChild5Type, MVT::v4i1,
/* 70118*/          OPC_EmitMergeInputChains1_0,
/* 70119*/          OPC_EmitConvertToTarget, 2,
/* 70121*/          OPC_EmitInteger, MVT::i32, 1, 
/* 70124*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRW32_qi), 0|OPFL_Chain,
                        5/*#Ops*/, 3, 1, 5, 6, 4, 
                    // Src: (intrinsic_void 1641:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4i32] }:$data, VCCR:{ *:[v4i1] }:$pred) - Complexity = 11
                    // Dst: (MVE_VSTRW32_qi MQPR:{ *:[v4i32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 70134*/        /*Scope*/ 21, /*->70156*/
/* 70135*/          OPC_CheckChild4Type, MVT::v4f32,
/* 70137*/          OPC_RecordChild5, // #4 = $pred
/* 70138*/          OPC_CheckChild5Type, MVT::v4i1,
/* 70140*/          OPC_EmitMergeInputChains1_0,
/* 70141*/          OPC_EmitConvertToTarget, 2,
/* 70143*/          OPC_EmitInteger, MVT::i32, 1, 
/* 70146*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRW32_qi), 0|OPFL_Chain,
                        5/*#Ops*/, 3, 1, 5, 6, 4, 
                    // Src: (intrinsic_void 1641:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4f32] }:$data, VCCR:{ *:[v4i1] }:$pred) - Complexity = 11
                    // Dst: (MVE_VSTRW32_qi MQPR:{ *:[v4f32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 70156*/        0, /*End of Scope*/
/* 70157*/      /*Scope*/ 55, /*->70213*/
/* 70158*/        OPC_CheckChild2Type, MVT::v2i64,
/* 70160*/        OPC_RecordChild3, // #2 = $offset
/* 70161*/        OPC_MoveChild3,
/* 70162*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 70165*/        OPC_MoveParent,
/* 70166*/        OPC_RecordChild4, // #3 = $data
/* 70167*/        OPC_Scope, 21, /*->70190*/ // 2 children in Scope
/* 70169*/          OPC_CheckChild4Type, MVT::v2i64,
/* 70171*/          OPC_RecordChild5, // #4 = $pred
/* 70172*/          OPC_CheckChild5Type, MVT::v4i1,
/* 70174*/          OPC_EmitMergeInputChains1_0,
/* 70175*/          OPC_EmitConvertToTarget, 2,
/* 70177*/          OPC_EmitInteger, MVT::i32, 1, 
/* 70180*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRD64_qi), 0|OPFL_Chain,
                        5/*#Ops*/, 3, 1, 5, 6, 4, 
                    // Src: (intrinsic_void 1641:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2i64] }:$data, VCCR:{ *:[v4i1] }:$pred) - Complexity = 11
                    // Dst: (MVE_VSTRD64_qi MQPR:{ *:[v2i64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 70190*/        /*Scope*/ 21, /*->70212*/
/* 70191*/          OPC_CheckChild4Type, MVT::v2f64,
/* 70193*/          OPC_RecordChild5, // #4 = $pred
/* 70194*/          OPC_CheckChild5Type, MVT::v4i1,
/* 70196*/          OPC_EmitMergeInputChains1_0,
/* 70197*/          OPC_EmitConvertToTarget, 2,
/* 70199*/          OPC_EmitInteger, MVT::i32, 1, 
/* 70202*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRD64_qi), 0|OPFL_Chain,
                        5/*#Ops*/, 3, 1, 5, 6, 4, 
                    // Src: (intrinsic_void 1641:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2f64] }:$data, VCCR:{ *:[v4i1] }:$pred) - Complexity = 11
                    // Dst: (MVE_VSTRD64_qi MQPR:{ *:[v2f64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 70212*/        0, /*End of Scope*/
/* 70213*/      0, /*End of Scope*/
/* 70214*/    /*Scope*/ 31, /*->70246*/
/* 70215*/      OPC_CheckChild1Integer, 92|128,11/*1500*/, 
/* 70218*/      OPC_Scope, 8, /*->70228*/ // 2 children in Scope
/* 70220*/        OPC_CheckPatternPredicate, 51, // (Subtarget->hasV6KOps()) && (!Subtarget->isThumb())
/* 70222*/        OPC_EmitMergeInputChains1_0,
/* 70223*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::CLREX), 0|OPFL_Chain,
                      0/*#Ops*/, 
                  // Src: (intrinsic_void 1500:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (CLREX)
/* 70228*/      /*Scope*/ 16, /*->70245*/
/* 70229*/        OPC_CheckPatternPredicate, 52, // (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 70231*/        OPC_EmitMergeInputChains1_0,
/* 70232*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70235*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70238*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::t2CLREX), 0|OPFL_Chain,
                      2/*#Ops*/, 1, 2, 
                  // Src: (intrinsic_void 1500:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (t2CLREX)
/* 70245*/      0, /*End of Scope*/
/* 70246*/    /*Scope*/ 15, /*->70262*/
/* 70247*/      OPC_CheckChild1Integer, 103|128,1/*231*/, 
/* 70250*/      OPC_RecordChild2, // #1 = $elts
/* 70251*/      OPC_CheckChild2Type, MVT::i32,
/* 70253*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 70255*/      OPC_EmitMergeInputChains1_0,
/* 70256*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::t2DoLoopStart), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 231:{ *:[iPTR] }, rGPR:{ *:[i32] }:$elts) - Complexity = 8
                // Dst: (t2DoLoopStart rGPR:{ *:[i32] }:$elts)
/* 70262*/    /*Scope*/ 21, /*->70284*/
/* 70263*/      OPC_CheckChild1Integer, 126|128,13/*1790*/, 
/* 70266*/      OPC_RecordChild2, // #1 = $Rt
/* 70267*/      OPC_CheckPatternPredicate, 36, // (Subtarget->hasFPRegs())
/* 70269*/      OPC_EmitMergeInputChains1_0,
/* 70270*/      OPC_EmitInteger, MVT::i32, 14, 
/* 70273*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70276*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::VMSR), 0|OPFL_Chain,
                    3/*#Ops*/, 1, 2, 3, 
                // Src: (intrinsic_void 1790:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rt) - Complexity = 8
                // Dst: (VMSR GPRnopc:{ *:[i32] }:$Rt)
/* 70284*/    0, /*End of Scope*/
/* 70285*/  /*SwitchOpcode*/ 4|128,3/*388*/, TARGET_VAL(ARMISD::PRELOAD),// ->70677
/* 70289*/    OPC_RecordNode, // #0 = 'ARMPreload' chained node
/* 70290*/    OPC_Scope, 69|128,2/*325*/, /*->70618*/ // 2 children in Scope
/* 70293*/      OPC_RecordChild1, // #1 = $shift
/* 70294*/      OPC_CheckChild1Type, MVT::i32,
/* 70296*/      OPC_Scope, 12|128,1/*140*/, /*->70439*/ // 2 children in Scope
/* 70299*/        OPC_CheckChild2Integer, 1, 
/* 70301*/        OPC_CheckChild2Type, MVT::i32,
/* 70303*/        OPC_Scope, 31, /*->70336*/ // 2 children in Scope
/* 70305*/          OPC_CheckChild3Integer, 1, 
/* 70307*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 70309*/          OPC_Scope, 12, /*->70323*/ // 2 children in Scope
/* 70311*/            OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectLdStSOReg:$shift #2 #3 #4
/* 70314*/            OPC_EmitMergeInputChains1_0,
/* 70315*/            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)
/* 70323*/          /*Scope*/ 11, /*->70335*/
/* 70324*/            OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 70327*/            OPC_EmitMergeInputChains1_0,
/* 70328*/            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)
/* 70335*/          0, /*End of Scope*/
/* 70336*/        /*Scope*/ 101, /*->70438*/
/* 70337*/          OPC_CheckChild3Integer, 0, 
/* 70339*/          OPC_Scope, 14, /*->70355*/ // 4 children in Scope
/* 70341*/            OPC_CheckPatternPredicate, 48, // (Subtarget->hasV7Ops()) && (!Subtarget->isThumb())
/* 70343*/            OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectLdStSOReg:$shift #2 #3 #4
/* 70346*/            OPC_EmitMergeInputChains1_0,
/* 70347*/            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)
/* 70355*/          /*Scope*/ 22, /*->70378*/
/* 70356*/            OPC_CheckPatternPredicate, 53, // (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (Subtarget->isThumb2())
/* 70358*/            OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 70361*/            OPC_EmitMergeInputChains1_0,
/* 70362*/            OPC_EmitInteger, MVT::i32, 14, 
/* 70365*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70368*/            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)
/* 70378*/          /*Scope*/ 13, /*->70392*/
/* 70379*/            OPC_CheckPatternPredicate, 48, // (Subtarget->hasV7Ops()) && (!Subtarget->isThumb())
/* 70381*/            OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 70384*/            OPC_EmitMergeInputChains1_0,
/* 70385*/            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)
/* 70392*/          /*Scope*/ 44, /*->70437*/
/* 70393*/            OPC_CheckPatternPredicate, 53, // (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (Subtarget->isThumb2())
/* 70395*/            OPC_Scope, 19, /*->70416*/ // 2 children in Scope
/* 70397*/              OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 70400*/              OPC_EmitMergeInputChains1_0,
/* 70401*/              OPC_EmitInteger, MVT::i32, 14, 
/* 70404*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70407*/              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)
/* 70416*/            /*Scope*/ 19, /*->70436*/
/* 70417*/              OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 70420*/              OPC_EmitMergeInputChains1_0,
/* 70421*/              OPC_EmitInteger, MVT::i32, 14, 
/* 70424*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70427*/              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)
/* 70436*/            0, /*End of Scope*/
/* 70437*/          0, /*End of Scope*/
/* 70438*/        0, /*End of Scope*/
/* 70439*/      /*Scope*/ 48|128,1/*176*/, /*->70617*/
/* 70441*/        OPC_CheckChild2Integer, 0, 
/* 70443*/        OPC_CheckChild2Type, MVT::i32,
/* 70445*/        OPC_Scope, 101, /*->70548*/ // 2 children in Scope
/* 70447*/          OPC_CheckChild3Integer, 1, 
/* 70449*/          OPC_Scope, 14, /*->70465*/ // 4 children in Scope
/* 70451*/            OPC_CheckPatternPredicate, 54, // (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (!Subtarget->isThumb())
/* 70453*/            OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectLdStSOReg:$shift #2 #3 #4
/* 70456*/            OPC_EmitMergeInputChains1_0,
/* 70457*/            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)
/* 70465*/          /*Scope*/ 22, /*->70488*/
/* 70466*/            OPC_CheckPatternPredicate, 55, // (Subtarget->hasV7Ops()) && (Subtarget->isThumb2())
/* 70468*/            OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 70471*/            OPC_EmitMergeInputChains1_0,
/* 70472*/            OPC_EmitInteger, MVT::i32, 14, 
/* 70475*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70478*/            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)
/* 70488*/          /*Scope*/ 13, /*->70502*/
/* 70489*/            OPC_CheckPatternPredicate, 54, // (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (!Subtarget->isThumb())
/* 70491*/            OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 70494*/            OPC_EmitMergeInputChains1_0,
/* 70495*/            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)
/* 70502*/          /*Scope*/ 44, /*->70547*/
/* 70503*/            OPC_CheckPatternPredicate, 55, // (Subtarget->hasV7Ops()) && (Subtarget->isThumb2())
/* 70505*/            OPC_Scope, 19, /*->70526*/ // 2 children in Scope
/* 70507*/              OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 70510*/              OPC_EmitMergeInputChains1_0,
/* 70511*/              OPC_EmitInteger, MVT::i32, 14, 
/* 70514*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70517*/              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)
/* 70526*/            /*Scope*/ 19, /*->70546*/
/* 70527*/              OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 70530*/              OPC_EmitMergeInputChains1_0,
/* 70531*/              OPC_EmitInteger, MVT::i32, 14, 
/* 70534*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70537*/              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)
/* 70546*/            0, /*End of Scope*/
/* 70547*/          0, /*End of Scope*/
/* 70548*/        /*Scope*/ 67, /*->70616*/
/* 70549*/          OPC_CheckChild3Integer, 0, 
/* 70551*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 70553*/          OPC_Scope, 20, /*->70575*/ // 3 children in Scope
/* 70555*/            OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 70558*/            OPC_EmitMergeInputChains1_0,
/* 70559*/            OPC_EmitInteger, MVT::i32, 14, 
/* 70562*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70565*/            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)
/* 70575*/          /*Scope*/ 19, /*->70595*/
/* 70576*/            OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 70579*/            OPC_EmitMergeInputChains1_0,
/* 70580*/            OPC_EmitInteger, MVT::i32, 14, 
/* 70583*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70586*/            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)
/* 70595*/          /*Scope*/ 19, /*->70615*/
/* 70596*/            OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 70599*/            OPC_EmitMergeInputChains1_0,
/* 70600*/            OPC_EmitInteger, MVT::i32, 14, 
/* 70603*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70606*/            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)
/* 70615*/          0, /*End of Scope*/
/* 70616*/        0, /*End of Scope*/
/* 70617*/      0, /*End of Scope*/
/* 70618*/    /*Scope*/ 57, /*->70676*/
/* 70619*/      OPC_MoveChild1,
/* 70620*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::Wrapper),
/* 70623*/      OPC_RecordChild0, // #1 = $addr
/* 70624*/      OPC_MoveChild0,
/* 70625*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstantPool),
/* 70628*/      OPC_MoveParent,
/* 70629*/      OPC_MoveParent,
/* 70630*/      OPC_CheckChild2Integer, 0, 
/* 70632*/      OPC_CheckChild2Type, MVT::i32,
/* 70634*/      OPC_Scope, 19, /*->70655*/ // 2 children in Scope
/* 70636*/        OPC_CheckChild3Integer, 0, 
/* 70638*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 70640*/        OPC_EmitMergeInputChains1_0,
/* 70641*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70644*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70647*/        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)
/* 70655*/      /*Scope*/ 19, /*->70675*/
/* 70656*/        OPC_CheckChild3Integer, 1, 
/* 70658*/        OPC_CheckPatternPredicate, 55, // (Subtarget->hasV7Ops()) && (Subtarget->isThumb2())
/* 70660*/        OPC_EmitMergeInputChains1_0,
/* 70661*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70664*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70667*/        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)
/* 70675*/      0, /*End of Scope*/
/* 70676*/    0, /*End of Scope*/
/* 70677*/  /*SwitchOpcode*/ 59|128,10/*1339*/, TARGET_VAL(ARMISD::CMPZ),// ->72020
/* 70681*/    OPC_Scope, 123, /*->70806*/ // 12 children in Scope
/* 70683*/      OPC_MoveChild0,
/* 70684*/      OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::AND),// ->70745
/* 70688*/        OPC_RecordChild0, // #0 = $Rn
/* 70689*/        OPC_RecordChild1, // #1 = $shift
/* 70690*/        OPC_CheckPredicate, 59, // Predicate_and_su
/* 70692*/        OPC_CheckType, MVT::i32,
/* 70694*/        OPC_MoveParent,
/* 70695*/        OPC_CheckChild1Integer, 0, 
/* 70697*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 70699*/        OPC_Scope, 21, /*->70722*/ // 2 children in Scope
/* 70701*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 70704*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70707*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70710*/          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)
/* 70722*/        /*Scope*/ 21, /*->70744*/
/* 70723*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 70726*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70729*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70732*/          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)
/* 70744*/        0, /*End of Scope*/
/* 70745*/      /*SwitchOpcode*/ 57, TARGET_VAL(ISD::XOR),// ->70805
/* 70748*/        OPC_RecordChild0, // #0 = $Rn
/* 70749*/        OPC_RecordChild1, // #1 = $shift
/* 70750*/        OPC_CheckPredicate, 59, // Predicate_xor_su
/* 70752*/        OPC_CheckType, MVT::i32,
/* 70754*/        OPC_MoveParent,
/* 70755*/        OPC_CheckChild1Integer, 0, 
/* 70757*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 70759*/        OPC_Scope, 21, /*->70782*/ // 2 children in Scope
/* 70761*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 70764*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70767*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70770*/          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)
/* 70782*/        /*Scope*/ 21, /*->70804*/
/* 70783*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 70786*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70789*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70792*/          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)
/* 70804*/        0, /*End of Scope*/
/* 70805*/      0, // EndSwitchOpcode
/* 70806*/    /*Scope*/ 34, /*->70841*/
/* 70807*/      OPC_RecordChild0, // #0 = $Rn
/* 70808*/      OPC_CheckChild0Type, MVT::i32,
/* 70810*/      OPC_MoveChild1,
/* 70811*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 70814*/      OPC_CheckChild0Integer, 0, 
/* 70816*/      OPC_RecordChild1, // #1 = $shift
/* 70817*/      OPC_MoveParent,
/* 70818*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 70820*/      OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 70823*/      OPC_EmitInteger, MVT::i32, 14, 
/* 70826*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70829*/      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)
/* 70841*/    /*Scope*/ 120|128,1/*248*/, /*->71091*/
/* 70843*/      OPC_MoveChild0,
/* 70844*/      OPC_SwitchOpcode /*3 cases */, 30, TARGET_VAL(ISD::SUB),// ->70878
/* 70848*/        OPC_CheckChild0Integer, 0, 
/* 70850*/        OPC_RecordChild1, // #0 = $shift
/* 70851*/        OPC_CheckType, MVT::i32,
/* 70853*/        OPC_MoveParent,
/* 70854*/        OPC_RecordChild1, // #1 = $Rn
/* 70855*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 70857*/        OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 70860*/        OPC_EmitInteger, MVT::i32, 14, 
/* 70863*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70866*/        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)
/* 70878*/      /*SwitchOpcode*/ 103, TARGET_VAL(ISD::AND),// ->70984
/* 70881*/        OPC_RecordChild0, // #0 = $Rn
/* 70882*/        OPC_RecordChild1, // #1 = $shift
/* 70883*/        OPC_CheckPredicate, 59, // Predicate_and_su
/* 70885*/        OPC_CheckType, MVT::i32,
/* 70887*/        OPC_MoveParent,
/* 70888*/        OPC_CheckChild1Integer, 0, 
/* 70890*/        OPC_Scope, 22, /*->70914*/ // 4 children in Scope
/* 70892*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 70894*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 70897*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70900*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70903*/          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)
/* 70914*/        /*Scope*/ 22, /*->70937*/
/* 70915*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 70917*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 70920*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70923*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70926*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TSTrs), 0|OPFL_GlueOutput,
                        MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (ARMcmpZ (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 21
                    // Dst: (t2TSTrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 70937*/        /*Scope*/ 22, /*->70960*/
/* 70938*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 70940*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 70943*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70946*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70949*/          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)
/* 70960*/        /*Scope*/ 22, /*->70983*/
/* 70961*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 70963*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 70966*/          OPC_EmitInteger, MVT::i32, 14, 
/* 70969*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 70972*/          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, rGPR:{ *:[i32] }:$Rn)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 21
                    // Dst: (t2TSTrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 70983*/        0, /*End of Scope*/
/* 70984*/      /*SwitchOpcode*/ 103, TARGET_VAL(ISD::XOR),// ->71090
/* 70987*/        OPC_RecordChild0, // #0 = $Rn
/* 70988*/        OPC_RecordChild1, // #1 = $shift
/* 70989*/        OPC_CheckPredicate, 59, // Predicate_xor_su
/* 70991*/        OPC_CheckType, MVT::i32,
/* 70993*/        OPC_MoveParent,
/* 70994*/        OPC_CheckChild1Integer, 0, 
/* 70996*/        OPC_Scope, 22, /*->71020*/ // 4 children in Scope
/* 70998*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71000*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 71003*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71006*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71009*/          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)
/* 71020*/        /*Scope*/ 22, /*->71043*/
/* 71021*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71023*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 71026*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71029*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71032*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TEQrs), 0|OPFL_GlueOutput,
                        MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (ARMcmpZ (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 21
                    // Dst: (t2TEQrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 71043*/        /*Scope*/ 22, /*->71066*/
/* 71044*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71046*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 71049*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71052*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71055*/          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)
/* 71066*/        /*Scope*/ 22, /*->71089*/
/* 71067*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71069*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 71072*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71075*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71078*/          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, rGPR:{ *:[i32] }:$Rn)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 21
                    // Dst: (t2TEQrs:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 71089*/        0, /*End of Scope*/
/* 71090*/      0, // EndSwitchOpcode
/* 71091*/    /*Scope*/ 59, /*->71151*/
/* 71092*/      OPC_RecordChild0, // #0 = $Rn
/* 71093*/      OPC_CheckChild0Type, MVT::i32,
/* 71095*/      OPC_MoveChild1,
/* 71096*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 71099*/      OPC_CheckChild0Integer, 0, 
/* 71101*/      OPC_RecordChild1, // #1 = $shift
/* 71102*/      OPC_MoveParent,
/* 71103*/      OPC_Scope, 22, /*->71127*/ // 2 children in Scope
/* 71105*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71107*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 71110*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71113*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71116*/        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)
/* 71127*/      /*Scope*/ 22, /*->71150*/
/* 71128*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71130*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 71133*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71136*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71139*/        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)
/* 71150*/      0, /*End of Scope*/
/* 71151*/    /*Scope*/ 79|128,1/*207*/, /*->71360*/
/* 71153*/      OPC_MoveChild0,
/* 71154*/      OPC_SwitchOpcode /*3 cases */, 55, TARGET_VAL(ISD::SUB),// ->71213
/* 71158*/        OPC_CheckChild0Integer, 0, 
/* 71160*/        OPC_RecordChild1, // #0 = $shift
/* 71161*/        OPC_CheckType, MVT::i32,
/* 71163*/        OPC_MoveParent,
/* 71164*/        OPC_RecordChild1, // #1 = $Rn
/* 71165*/        OPC_Scope, 22, /*->71189*/ // 2 children in Scope
/* 71167*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71169*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 71172*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71175*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71178*/          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)
/* 71189*/        /*Scope*/ 22, /*->71212*/
/* 71190*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71192*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 71195*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71198*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71201*/          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)
/* 71212*/        0, /*End of Scope*/
/* 71213*/      /*SwitchOpcode*/ 70, TARGET_VAL(ISD::AND),// ->71286
/* 71216*/        OPC_RecordChild0, // #0 = $Rn
/* 71217*/        OPC_RecordChild1, // #1 = $imm
/* 71218*/        OPC_MoveChild1,
/* 71219*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 71222*/        OPC_Scope, 30, /*->71254*/ // 2 children in Scope
/* 71224*/          OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 71226*/          OPC_MoveParent,
/* 71227*/          OPC_CheckPredicate, 59, // Predicate_and_su
/* 71229*/          OPC_CheckType, MVT::i32,
/* 71231*/          OPC_MoveParent,
/* 71232*/          OPC_CheckChild1Integer, 0, 
/* 71234*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71236*/          OPC_EmitConvertToTarget, 1,
/* 71238*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71241*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71244*/          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)
/* 71254*/        /*Scope*/ 30, /*->71285*/
/* 71255*/          OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 71257*/          OPC_MoveParent,
/* 71258*/          OPC_CheckPredicate, 59, // Predicate_and_su
/* 71260*/          OPC_CheckType, MVT::i32,
/* 71262*/          OPC_MoveParent,
/* 71263*/          OPC_CheckChild1Integer, 0, 
/* 71265*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71267*/          OPC_EmitConvertToTarget, 1,
/* 71269*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71272*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71275*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TSTri), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMcmpZ (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 16
                    // Dst: (t2TSTri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 71285*/        0, /*End of Scope*/
/* 71286*/      /*SwitchOpcode*/ 70, TARGET_VAL(ISD::XOR),// ->71359
/* 71289*/        OPC_RecordChild0, // #0 = $Rn
/* 71290*/        OPC_RecordChild1, // #1 = $imm
/* 71291*/        OPC_MoveChild1,
/* 71292*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 71295*/        OPC_Scope, 30, /*->71327*/ // 2 children in Scope
/* 71297*/          OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 71299*/          OPC_MoveParent,
/* 71300*/          OPC_CheckPredicate, 59, // Predicate_xor_su
/* 71302*/          OPC_CheckType, MVT::i32,
/* 71304*/          OPC_MoveParent,
/* 71305*/          OPC_CheckChild1Integer, 0, 
/* 71307*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71309*/          OPC_EmitConvertToTarget, 1,
/* 71311*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71314*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71317*/          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)
/* 71327*/        /*Scope*/ 30, /*->71358*/
/* 71328*/          OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 71330*/          OPC_MoveParent,
/* 71331*/          OPC_CheckPredicate, 59, // Predicate_xor_su
/* 71333*/          OPC_CheckType, MVT::i32,
/* 71335*/          OPC_MoveParent,
/* 71336*/          OPC_CheckChild1Integer, 0, 
/* 71338*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71340*/          OPC_EmitConvertToTarget, 1,
/* 71342*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71345*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71348*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TEQri), 0|OPFL_GlueOutput,
                        MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMcmpZ (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 16
                    // Dst: (t2TEQri:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm)
/* 71358*/        0, /*End of Scope*/
/* 71359*/      0, // EndSwitchOpcode
/* 71360*/    /*Scope*/ 73, /*->71434*/
/* 71361*/      OPC_RecordChild0, // #0 = $src
/* 71362*/      OPC_CheckChild0Type, MVT::i32,
/* 71364*/      OPC_RecordChild1, // #1 = $rhs
/* 71365*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71367*/      OPC_Scope, 21, /*->71390*/ // 3 children in Scope
/* 71369*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$rhs #2 #3 #4
/* 71372*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71375*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71378*/        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)
/* 71390*/      /*Scope*/ 21, /*->71412*/
/* 71391*/        OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$rhs #2 #3 #4
/* 71394*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71397*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71400*/        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)
/* 71412*/      /*Scope*/ 20, /*->71433*/
/* 71413*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$rhs #2 #3
/* 71416*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71419*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71422*/        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)
/* 71433*/      0, /*End of Scope*/
/* 71434*/    /*Scope*/ 85, /*->71520*/
/* 71435*/      OPC_MoveChild0,
/* 71436*/      OPC_SwitchOpcode /*2 cases */, 49, TARGET_VAL(ISD::AND),// ->71489
/* 71440*/        OPC_RecordChild0, // #0 = $Rn
/* 71441*/        OPC_RecordChild1, // #1 = $Rm
/* 71442*/        OPC_CheckPredicate, 59, // Predicate_and_su
/* 71444*/        OPC_CheckType, MVT::i32,
/* 71446*/        OPC_MoveParent,
/* 71447*/        OPC_CheckChild1Integer, 0, 
/* 71449*/        OPC_Scope, 18, /*->71469*/ // 2 children in Scope
/* 71451*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71453*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71456*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71459*/          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)
/* 71469*/        /*Scope*/ 18, /*->71488*/
/* 71470*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 71472*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71475*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71478*/          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)
/* 71488*/        0, /*End of Scope*/
/* 71489*/      /*SwitchOpcode*/ 27, TARGET_VAL(ISD::XOR),// ->71519
/* 71492*/        OPC_RecordChild0, // #0 = $Rn
/* 71493*/        OPC_RecordChild1, // #1 = $Rm
/* 71494*/        OPC_CheckPredicate, 59, // Predicate_xor_su
/* 71496*/        OPC_CheckType, MVT::i32,
/* 71498*/        OPC_MoveParent,
/* 71499*/        OPC_CheckChild1Integer, 0, 
/* 71501*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71503*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71506*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71509*/        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)
/* 71519*/      0, // EndSwitchOpcode
/* 71520*/    /*Scope*/ 26, /*->71547*/
/* 71521*/      OPC_RecordChild0, // #0 = $lhs
/* 71522*/      OPC_CheckChild0Type, MVT::i32,
/* 71524*/      OPC_RecordChild1, // #1 = $rhs
/* 71525*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71527*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$rhs #2 #3
/* 71530*/      OPC_EmitInteger, MVT::i32, 14, 
/* 71533*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71536*/      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)
/* 71547*/    /*Scope*/ 63, /*->71611*/
/* 71548*/      OPC_MoveChild0,
/* 71549*/      OPC_SwitchOpcode /*2 cases */, 27, TARGET_VAL(ISD::AND),// ->71580
/* 71553*/        OPC_RecordChild0, // #0 = $Rn
/* 71554*/        OPC_RecordChild1, // #1 = $Rm
/* 71555*/        OPC_CheckPredicate, 59, // Predicate_and_su
/* 71557*/        OPC_CheckType, MVT::i32,
/* 71559*/        OPC_MoveParent,
/* 71560*/        OPC_CheckChild1Integer, 0, 
/* 71562*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71564*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71567*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71570*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TSTrr), 0|OPFL_GlueOutput,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMcmpZ (and:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 12
                  // Dst: (t2TSTrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 71580*/      /*SwitchOpcode*/ 27, TARGET_VAL(ISD::XOR),// ->71610
/* 71583*/        OPC_RecordChild0, // #0 = $Rn
/* 71584*/        OPC_RecordChild1, // #1 = $Rm
/* 71585*/        OPC_CheckPredicate, 59, // Predicate_xor_su
/* 71587*/        OPC_CheckType, MVT::i32,
/* 71589*/        OPC_MoveParent,
/* 71590*/        OPC_CheckChild1Integer, 0, 
/* 71592*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71594*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71597*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71600*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2TEQrr), 0|OPFL_GlueOutput,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMcmpZ (xor:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)<<P:Predicate_xor_su>>, 0:{ *:[i32] }) - Complexity = 12
                  // Dst: (t2TEQrr:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 71610*/      0, // EndSwitchOpcode
/* 71611*/    /*Scope*/ 123, /*->71735*/
/* 71612*/      OPC_RecordChild0, // #0 = $rhs
/* 71613*/      OPC_CheckChild0Type, MVT::i32,
/* 71615*/      OPC_Scope, 49, /*->71666*/ // 2 children in Scope
/* 71617*/        OPC_RecordChild1, // #1 = $src
/* 71618*/        OPC_Scope, 22, /*->71642*/ // 2 children in Scope
/* 71620*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71622*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$rhs #2 #3
/* 71625*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71628*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71631*/          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)
/* 71642*/        /*Scope*/ 22, /*->71665*/
/* 71643*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71645*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$rhs #2 #3
/* 71648*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71651*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71654*/          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)
/* 71665*/        0, /*End of Scope*/
/* 71666*/      /*Scope*/ 67, /*->71734*/
/* 71667*/        OPC_MoveChild1,
/* 71668*/        OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 71671*/        OPC_CheckChild0Integer, 0, 
/* 71673*/        OPC_RecordChild1, // #1 = $Rm
/* 71674*/        OPC_MoveParent,
/* 71675*/        OPC_Scope, 18, /*->71695*/ // 3 children in Scope
/* 71677*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71679*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71682*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71685*/          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)
/* 71695*/        /*Scope*/ 18, /*->71714*/
/* 71696*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 71698*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71701*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71704*/          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)
/* 71714*/        /*Scope*/ 18, /*->71733*/
/* 71715*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71717*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71720*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71723*/          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)
/* 71733*/        0, /*End of Scope*/
/* 71734*/      0, /*End of Scope*/
/* 71735*/    /*Scope*/ 70, /*->71806*/
/* 71736*/      OPC_MoveChild0,
/* 71737*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 71740*/      OPC_CheckChild0Integer, 0, 
/* 71742*/      OPC_RecordChild1, // #0 = $Rm
/* 71743*/      OPC_CheckType, MVT::i32,
/* 71745*/      OPC_MoveParent,
/* 71746*/      OPC_RecordChild1, // #1 = $Rn
/* 71747*/      OPC_Scope, 18, /*->71767*/ // 3 children in Scope
/* 71749*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71751*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71754*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71757*/        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)
/* 71767*/      /*Scope*/ 18, /*->71786*/
/* 71768*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 71770*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71773*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71776*/        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)
/* 71786*/      /*Scope*/ 18, /*->71805*/
/* 71787*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71789*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71792*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71795*/        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)
/* 71805*/      0, /*End of Scope*/
/* 71806*/    /*Scope*/ 83|128,1/*211*/, /*->72019*/
/* 71808*/      OPC_RecordChild0, // #0 = $src
/* 71809*/      OPC_CheckChild0Type, MVT::i32,
/* 71811*/      OPC_RecordChild1, // #1 = $imm
/* 71812*/      OPC_Scope, 4|128,1/*132*/, /*->71947*/ // 4 children in Scope
/* 71815*/        OPC_MoveChild1,
/* 71816*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 71819*/        OPC_Scope, 23, /*->71844*/ // 5 children in Scope
/* 71821*/          OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 71823*/          OPC_MoveParent,
/* 71824*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71826*/          OPC_EmitConvertToTarget, 1,
/* 71828*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71831*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71834*/          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)
/* 71844*/        /*Scope*/ 26, /*->71871*/
/* 71845*/          OPC_CheckPredicate, 18, // Predicate_mod_imm_neg
/* 71847*/          OPC_MoveParent,
/* 71848*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71850*/          OPC_EmitConvertToTarget, 1,
/* 71852*/          OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 71855*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71858*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71861*/          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))
/* 71871*/        /*Scope*/ 23, /*->71895*/
/* 71872*/          OPC_CheckPredicate, 57, // Predicate_imm0_255
/* 71874*/          OPC_MoveParent,
/* 71875*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 71877*/          OPC_EmitConvertToTarget, 1,
/* 71879*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71882*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71885*/          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)
/* 71895*/        /*Scope*/ 23, /*->71919*/
/* 71896*/          OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 71898*/          OPC_MoveParent,
/* 71899*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71901*/          OPC_EmitConvertToTarget, 1,
/* 71903*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71906*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71909*/          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)
/* 71919*/        /*Scope*/ 26, /*->71946*/
/* 71920*/          OPC_CheckPredicate, 21, // Predicate_t2_so_imm_neg
/* 71922*/          OPC_MoveParent,
/* 71923*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71925*/          OPC_EmitConvertToTarget, 1,
/* 71927*/          OPC_EmitNodeXForm, 4, 2, // t2_so_imm_neg_XFORM
/* 71930*/          OPC_EmitInteger, MVT::i32, 14, 
/* 71933*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71936*/          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))
/* 71946*/        0, /*End of Scope*/
/* 71947*/      /*Scope*/ 18, /*->71966*/
/* 71948*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 71950*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71953*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71956*/        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)
/* 71966*/      /*Scope*/ 18, /*->71985*/
/* 71967*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 71969*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71972*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71975*/        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)
/* 71985*/      /*Scope*/ 32, /*->72018*/
/* 71986*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 71988*/        OPC_EmitInteger, MVT::i32, 14, 
/* 71991*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 71994*/        OPC_Scope, 10, /*->72006*/ // 2 children in Scope
/* 71996*/          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)
/* 72006*/        /*Scope*/ 10, /*->72017*/
/* 72007*/          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)
/* 72017*/        0, /*End of Scope*/
/* 72018*/      0, /*End of Scope*/
/* 72019*/    0, /*End of Scope*/
/* 72020*/  /*SwitchOpcode*/ 105|128,6/*873*/, TARGET_VAL(ARMISD::CMOV),// ->72897
/* 72024*/    OPC_CaptureGlueInput,
/* 72025*/    OPC_Scope, 46, /*->72073*/ // 7 children in Scope
/* 72027*/      OPC_RecordChild0, // #0 = $false
/* 72028*/      OPC_RecordChild1, // #1 = $shift
/* 72029*/      OPC_RecordChild2, // #2 = $p
/* 72030*/      OPC_CheckType, MVT::i32,
/* 72032*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 72034*/      OPC_Scope, 18, /*->72054*/ // 2 children in Scope
/* 72036*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #3 #4 #5
/* 72039*/        OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #6 #7
/* 72042*/        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)
/* 72054*/      /*Scope*/ 17, /*->72072*/
/* 72055*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #3 #4
/* 72058*/        OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #5 #6
/* 72061*/        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)
/* 72072*/      0, /*End of Scope*/
/* 72073*/    /*Scope*/ 26, /*->72100*/
/* 72074*/      OPC_MoveChild0,
/* 72075*/      OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 72078*/      OPC_RecordChild0, // #0 = $fval
/* 72079*/      OPC_CheckChild1Integer, 1, 
/* 72081*/      OPC_MoveParent,
/* 72082*/      OPC_RecordChild1, // #1 = $tval
/* 72083*/      OPC_RecordChild2, // #2 = $imm
/* 72084*/      OPC_CheckType, MVT::i32,
/* 72086*/      OPC_CheckPatternPredicate, 56, // (Subtarget->hasV8_1MMainlineOps())
/* 72088*/      OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$imm #3 #4
/* 72091*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CSINC), 0|OPFL_GlueInput,
                    MVT::i32, 3/*#Ops*/, 1, 0, 3, 
                // Src: (ARMcmov:{ *:[i32] } (add:{ *:[i32] } rGPR:{ *:[i32] }:$fval, 1:{ *:[i32] }), GPRwithZR:{ *:[i32] }:$tval, cmovpred:{ *:[i32] }:$imm) - Complexity = 20
                // Dst: (t2CSINC:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, GPRwithZR:{ *:[i32] }:$fval, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
/* 72100*/    /*Scope*/ 29, /*->72130*/
/* 72101*/      OPC_RecordChild0, // #0 = $tval
/* 72102*/      OPC_MoveChild1,
/* 72103*/      OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 72106*/      OPC_RecordChild0, // #1 = $fval
/* 72107*/      OPC_CheckChild1Integer, 1, 
/* 72109*/      OPC_MoveParent,
/* 72110*/      OPC_RecordChild2, // #2 = $imm
/* 72111*/      OPC_CheckType, MVT::i32,
/* 72113*/      OPC_CheckPatternPredicate, 56, // (Subtarget->hasV8_1MMainlineOps())
/* 72115*/      OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$imm #3 #4
/* 72118*/      OPC_EmitNodeXForm, 14, 3, // inv_cond_XFORM
/* 72121*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CSINC), 0|OPFL_GlueInput,
                    MVT::i32, 3/*#Ops*/, 0, 1, 5, 
                // Src: (ARMcmov:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, (add:{ *:[i32] } rGPR:{ *:[i32] }:$fval, 1:{ *:[i32] }), cmovpred:{ *:[i32] }:$imm) - Complexity = 20
                // Dst: (t2CSINC:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, GPRwithZR:{ *:[i32] }:$fval, (inv_cond_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 72130*/    /*Scope*/ 35, /*->72166*/
/* 72131*/      OPC_MoveChild0,
/* 72132*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 72135*/      OPC_RecordChild0, // #0 = $fval
/* 72136*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 72147*/      OPC_MoveParent,
/* 72148*/      OPC_RecordChild1, // #1 = $tval
/* 72149*/      OPC_RecordChild2, // #2 = $imm
/* 72150*/      OPC_CheckType, MVT::i32,
/* 72152*/      OPC_CheckPatternPredicate, 56, // (Subtarget->hasV8_1MMainlineOps())
/* 72154*/      OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$imm #3 #4
/* 72157*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CSINV), 0|OPFL_GlueInput,
                    MVT::i32, 3/*#Ops*/, 1, 0, 3, 
                // Src: (ARMcmov:{ *:[i32] } (xor:{ *:[i32] } rGPR:{ *:[i32] }:$fval, -1:{ *:[i32] }), GPRwithZR:{ *:[i32] }:$tval, cmovpred:{ *:[i32] }:$imm) - Complexity = 20
                // Dst: (t2CSINV:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, GPRwithZR:{ *:[i32] }:$fval, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
/* 72166*/    /*Scope*/ 38, /*->72205*/
/* 72167*/      OPC_RecordChild0, // #0 = $tval
/* 72168*/      OPC_MoveChild1,
/* 72169*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 72172*/      OPC_RecordChild0, // #1 = $fval
/* 72173*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 72184*/      OPC_MoveParent,
/* 72185*/      OPC_RecordChild2, // #2 = $imm
/* 72186*/      OPC_CheckType, MVT::i32,
/* 72188*/      OPC_CheckPatternPredicate, 56, // (Subtarget->hasV8_1MMainlineOps())
/* 72190*/      OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$imm #3 #4
/* 72193*/      OPC_EmitNodeXForm, 14, 3, // inv_cond_XFORM
/* 72196*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CSINV), 0|OPFL_GlueInput,
                    MVT::i32, 3/*#Ops*/, 0, 1, 5, 
                // Src: (ARMcmov:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, (xor:{ *:[i32] } rGPR:{ *:[i32] }:$fval, -1:{ *:[i32] }), cmovpred:{ *:[i32] }:$imm) - Complexity = 20
                // Dst: (t2CSINV:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, GPRwithZR:{ *:[i32] }:$fval, (inv_cond_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 72205*/    /*Scope*/ 26, /*->72232*/
/* 72206*/      OPC_MoveChild0,
/* 72207*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 72210*/      OPC_CheckChild0Integer, 0, 
/* 72212*/      OPC_RecordChild1, // #0 = $fval
/* 72213*/      OPC_MoveParent,
/* 72214*/      OPC_RecordChild1, // #1 = $tval
/* 72215*/      OPC_RecordChild2, // #2 = $imm
/* 72216*/      OPC_CheckType, MVT::i32,
/* 72218*/      OPC_CheckPatternPredicate, 56, // (Subtarget->hasV8_1MMainlineOps())
/* 72220*/      OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$imm #3 #4
/* 72223*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CSNEG), 0|OPFL_GlueInput,
                    MVT::i32, 3/*#Ops*/, 1, 0, 3, 
                // Src: (ARMcmov:{ *:[i32] } (sub:{ *:[i32] } 0:{ *:[i32] }, rGPR:{ *:[i32] }:$fval), GPRwithZR:{ *:[i32] }:$tval, cmovpred:{ *:[i32] }:$imm) - Complexity = 20
                // Dst: (t2CSNEG:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, GPRwithZR:{ *:[i32] }:$fval, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
/* 72232*/    /*Scope*/ 22|128,5/*662*/, /*->72896*/
/* 72234*/      OPC_RecordChild0, // #0 = $tval
/* 72235*/      OPC_Scope, 52|128,1/*180*/, /*->72418*/ // 2 children in Scope
/* 72238*/        OPC_MoveChild1,
/* 72239*/        OPC_SwitchOpcode /*5 cases */, 24, TARGET_VAL(ISD::SUB),// ->72267
/* 72243*/          OPC_CheckChild0Integer, 0, 
/* 72245*/          OPC_RecordChild1, // #1 = $fval
/* 72246*/          OPC_MoveParent,
/* 72247*/          OPC_RecordChild2, // #2 = $imm
/* 72248*/          OPC_CheckType, MVT::i32,
/* 72250*/          OPC_CheckPatternPredicate, 56, // (Subtarget->hasV8_1MMainlineOps())
/* 72252*/          OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$imm #3 #4
/* 72255*/          OPC_EmitNodeXForm, 14, 3, // inv_cond_XFORM
/* 72258*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CSNEG), 0|OPFL_GlueInput,
                        MVT::i32, 3/*#Ops*/, 0, 1, 5, 
                    // Src: (ARMcmov:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, (sub:{ *:[i32] } 0:{ *:[i32] }, rGPR:{ *:[i32] }:$fval), cmovpred:{ *:[i32] }:$imm) - Complexity = 20
                    // Dst: (t2CSNEG:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, GPRwithZR:{ *:[i32] }:$fval, (inv_cond_XFORM:{ *:[i32] } (imm:{ *:[i32] }):$imm))
/* 72267*/        /*SwitchOpcode*/ 33, TARGET_VAL(ISD::SHL),// ->72303
/* 72270*/          OPC_RecordChild0, // #1 = $Rm
/* 72271*/          OPC_RecordChild1, // #2 = $imm
/* 72272*/          OPC_MoveChild1,
/* 72273*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 72276*/          OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 72278*/          OPC_CheckType, MVT::i32,
/* 72280*/          OPC_MoveParent,
/* 72281*/          OPC_MoveParent,
/* 72282*/          OPC_RecordChild2, // #3 = $p
/* 72283*/          OPC_CheckType, MVT::i32,
/* 72285*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 72287*/          OPC_CheckComplexPat, /*CP*/38, /*#*/3, // SelectCMOVPred:$p #4 #5
/* 72290*/          OPC_EmitConvertToTarget, 2,
/* 72292*/          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)
/* 72303*/        /*SwitchOpcode*/ 36, TARGET_VAL(ISD::SRL),// ->72342
/* 72306*/          OPC_RecordChild0, // #1 = $Rm
/* 72307*/          OPC_RecordChild1, // #2 = $imm
/* 72308*/          OPC_MoveChild1,
/* 72309*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 72312*/          OPC_CheckPredicate, 40, // Predicate_imm_sr
/* 72314*/          OPC_CheckType, MVT::i32,
/* 72316*/          OPC_MoveParent,
/* 72317*/          OPC_MoveParent,
/* 72318*/          OPC_RecordChild2, // #3 = $p
/* 72319*/          OPC_CheckType, MVT::i32,
/* 72321*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 72323*/          OPC_CheckComplexPat, /*CP*/38, /*#*/3, // SelectCMOVPred:$p #4 #5
/* 72326*/          OPC_EmitConvertToTarget, 2,
/* 72328*/          OPC_EmitNodeXForm, 13, 6, // imm_sr_XFORM
/* 72331*/          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)
/* 72342*/        /*SwitchOpcode*/ 36, TARGET_VAL(ISD::SRA),// ->72381
/* 72345*/          OPC_RecordChild0, // #1 = $Rm
/* 72346*/          OPC_RecordChild1, // #2 = $imm
/* 72347*/          OPC_MoveChild1,
/* 72348*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 72351*/          OPC_CheckPredicate, 40, // Predicate_imm_sr
/* 72353*/          OPC_CheckType, MVT::i32,
/* 72355*/          OPC_MoveParent,
/* 72356*/          OPC_MoveParent,
/* 72357*/          OPC_RecordChild2, // #3 = $p
/* 72358*/          OPC_CheckType, MVT::i32,
/* 72360*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 72362*/          OPC_CheckComplexPat, /*CP*/38, /*#*/3, // SelectCMOVPred:$p #4 #5
/* 72365*/          OPC_EmitConvertToTarget, 2,
/* 72367*/          OPC_EmitNodeXForm, 13, 6, // imm_sr_XFORM
/* 72370*/          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)
/* 72381*/        /*SwitchOpcode*/ 33, TARGET_VAL(ISD::ROTR),// ->72417
/* 72384*/          OPC_RecordChild0, // #1 = $Rm
/* 72385*/          OPC_RecordChild1, // #2 = $imm
/* 72386*/          OPC_MoveChild1,
/* 72387*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 72390*/          OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 72392*/          OPC_CheckType, MVT::i32,
/* 72394*/          OPC_MoveParent,
/* 72395*/          OPC_MoveParent,
/* 72396*/          OPC_RecordChild2, // #3 = $p
/* 72397*/          OPC_CheckType, MVT::i32,
/* 72399*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 72401*/          OPC_CheckComplexPat, /*CP*/38, /*#*/3, // SelectCMOVPred:$p #4 #5
/* 72404*/          OPC_EmitConvertToTarget, 2,
/* 72406*/          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)
/* 72417*/        0, // EndSwitchOpcode
/* 72418*/      /*Scope*/ 91|128,3/*475*/, /*->72895*/
/* 72420*/        OPC_RecordChild1, // #1 = $imm
/* 72421*/        OPC_Scope, 71|128,1/*199*/, /*->72623*/ // 7 children in Scope
/* 72424*/          OPC_MoveChild1,
/* 72425*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 72428*/          OPC_Scope, 23, /*->72453*/ // 7 children in Scope
/* 72430*/            OPC_CheckPredicate, 56, // Predicate_imm0_65535
/* 72432*/            OPC_MoveParent,
/* 72433*/            OPC_RecordChild2, // #2 = $p
/* 72434*/            OPC_CheckType, MVT::i32,
/* 72436*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 72438*/            OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 72441*/            OPC_EmitConvertToTarget, 1,
/* 72443*/            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)
/* 72453*/          /*Scope*/ 23, /*->72477*/
/* 72454*/            OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 72456*/            OPC_MoveParent,
/* 72457*/            OPC_RecordChild2, // #2 = $p
/* 72458*/            OPC_CheckType, MVT::i32,
/* 72460*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 72462*/            OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 72465*/            OPC_EmitConvertToTarget, 1,
/* 72467*/            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)
/* 72477*/          /*Scope*/ 26, /*->72504*/
/* 72478*/            OPC_CheckPredicate, 26, // Predicate_mod_imm_not
/* 72480*/            OPC_MoveParent,
/* 72481*/            OPC_RecordChild2, // #2 = $p
/* 72482*/            OPC_CheckType, MVT::i32,
/* 72484*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 72486*/            OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 72489*/            OPC_EmitConvertToTarget, 1,
/* 72491*/            OPC_EmitNodeXForm, 9, 5, // imm_not_XFORM
/* 72494*/            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)
/* 72504*/          /*Scope*/ 23, /*->72528*/
/* 72505*/            OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 72507*/            OPC_MoveParent,
/* 72508*/            OPC_RecordChild2, // #2 = $p
/* 72509*/            OPC_CheckType, MVT::i32,
/* 72511*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 72513*/            OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 72516*/            OPC_EmitConvertToTarget, 1,
/* 72518*/            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)
/* 72528*/          /*Scope*/ 23, /*->72552*/
/* 72529*/            OPC_CheckPredicate, 56, // Predicate_imm0_65535
/* 72531*/            OPC_MoveParent,
/* 72532*/            OPC_RecordChild2, // #2 = $p
/* 72533*/            OPC_CheckType, MVT::i32,
/* 72535*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 72537*/            OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 72540*/            OPC_EmitConvertToTarget, 1,
/* 72542*/            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)
/* 72552*/          /*Scope*/ 26, /*->72579*/
/* 72553*/            OPC_CheckPredicate, 12, // Predicate_t2_so_imm_not
/* 72555*/            OPC_MoveParent,
/* 72556*/            OPC_RecordChild2, // #2 = $p
/* 72557*/            OPC_CheckType, MVT::i32,
/* 72559*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 72561*/            OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 72564*/            OPC_EmitConvertToTarget, 1,
/* 72566*/            OPC_EmitNodeXForm, 1, 5, // t2_so_imm_not_XFORM
/* 72569*/            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)
/* 72579*/          /*Scope*/ 42, /*->72622*/
/* 72580*/            OPC_MoveParent,
/* 72581*/            OPC_RecordChild2, // #2 = $p
/* 72582*/            OPC_CheckType, MVT::i32,
/* 72584*/            OPC_Scope, 17, /*->72603*/ // 2 children in Scope
/* 72586*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 72588*/              OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 72591*/              OPC_EmitConvertToTarget, 1,
/* 72593*/              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)
/* 72603*/            /*Scope*/ 17, /*->72621*/
/* 72604*/              OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 72606*/              OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 72609*/              OPC_EmitConvertToTarget, 1,
/* 72611*/              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)
/* 72621*/            0, /*End of Scope*/
/* 72622*/          0, /*End of Scope*/
/* 72623*/        /*Scope*/ 51, /*->72675*/
/* 72624*/          OPC_RecordChild2, // #2 = $p
/* 72625*/          OPC_CheckType, MVT::i32,
/* 72627*/          OPC_Scope, 15, /*->72644*/ // 3 children in Scope
/* 72629*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 72631*/            OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 72634*/            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)
/* 72644*/          /*Scope*/ 15, /*->72660*/
/* 72645*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 72647*/            OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 72650*/            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)
/* 72660*/          /*Scope*/ 13, /*->72674*/
/* 72661*/            OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 72664*/            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)
/* 72674*/          0, /*End of Scope*/
/* 72675*/        /*Scope*/ 40, /*->72716*/
/* 72676*/          OPC_CheckChild2Integer, 12, 
/* 72678*/          OPC_SwitchType /*3 cases */, 10, MVT::f16,// ->72691
/* 72681*/            OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/* 72683*/            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)
/* 72691*/          /*SwitchType*/ 10, MVT::f32,// ->72703
/* 72693*/            OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/* 72695*/            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)
/* 72703*/          /*SwitchType*/ 10, MVT::f64,// ->72715
/* 72705*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/* 72707*/            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)
/* 72715*/          0, // EndSwitchType
/* 72716*/        /*Scope*/ 40, /*->72757*/
/* 72717*/          OPC_CheckChild2Integer, 10, 
/* 72719*/          OPC_SwitchType /*3 cases */, 10, MVT::f16,// ->72732
/* 72722*/            OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/* 72724*/            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)
/* 72732*/          /*SwitchType*/ 10, MVT::f32,// ->72744
/* 72734*/            OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/* 72736*/            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)
/* 72744*/          /*SwitchType*/ 10, MVT::f64,// ->72756
/* 72746*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/* 72748*/            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)
/* 72756*/          0, // EndSwitchType
/* 72757*/        /*Scope*/ 40, /*->72798*/
/* 72758*/          OPC_CheckChild2Integer, 0, 
/* 72760*/          OPC_SwitchType /*3 cases */, 10, MVT::f16,// ->72773
/* 72763*/            OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/* 72765*/            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)
/* 72773*/          /*SwitchType*/ 10, MVT::f32,// ->72785
/* 72775*/            OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/* 72777*/            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)
/* 72785*/          /*SwitchType*/ 10, MVT::f64,// ->72797
/* 72787*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/* 72789*/            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)
/* 72797*/          0, // EndSwitchType
/* 72798*/        /*Scope*/ 40, /*->72839*/
/* 72799*/          OPC_CheckChild2Integer, 6, 
/* 72801*/          OPC_SwitchType /*3 cases */, 10, MVT::f16,// ->72814
/* 72804*/            OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/* 72806*/            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)
/* 72814*/          /*SwitchType*/ 10, MVT::f32,// ->72826
/* 72816*/            OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/* 72818*/            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)
/* 72826*/          /*SwitchType*/ 10, MVT::f64,// ->72838
/* 72828*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/* 72830*/            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)
/* 72838*/          0, // EndSwitchType
/* 72839*/        /*Scope*/ 54, /*->72894*/
/* 72840*/          OPC_RecordChild2, // #2 = $p
/* 72841*/          OPC_SwitchType /*3 cases */, 15, MVT::f64,// ->72859
/* 72844*/            OPC_CheckPatternPredicate, 57, // (Subtarget->hasFPRegs64())
/* 72846*/            OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 72849*/            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)
/* 72859*/          /*SwitchType*/ 15, MVT::f32,// ->72876
/* 72861*/            OPC_CheckPatternPredicate, 36, // (Subtarget->hasFPRegs())
/* 72863*/            OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 72866*/            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)
/* 72876*/          /*SwitchType*/ 15, MVT::f16,// ->72893
/* 72878*/            OPC_CheckPatternPredicate, 36, // (Subtarget->hasFPRegs())
/* 72880*/            OPC_CheckComplexPat, /*CP*/38, /*#*/2, // SelectCMOVPred:$p #3 #4
/* 72883*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVHcc), 0|OPFL_GlueInput,
                          MVT::f16, 4/*#Ops*/, 0, 1, 3, 4, 
                      // Src: (ARMcmov:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm, cmovpred:{ *:[i32] }:$p) - Complexity = 12
                      // Dst: (VMOVHcc:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm, cmovpred:{ *:[i32] }:$p)
/* 72893*/          0, // EndSwitchType
/* 72894*/        0, /*End of Scope*/
/* 72895*/      0, /*End of Scope*/
/* 72896*/    0, /*End of Scope*/
/* 72897*/  /*SwitchOpcode*/ 125|128,61/*7933*/, TARGET_VAL(ISD::LOAD),// ->80834
/* 72901*/    OPC_RecordMemRef,
/* 72902*/    OPC_RecordNode, // #0 = 'ld' chained node
/* 72903*/    OPC_Scope, 67|128,1/*195*/, /*->73101*/ // 5 children in Scope
/* 72906*/      OPC_RecordChild1, // #1 = $addr
/* 72907*/      OPC_CheckChild1Type, MVT::i32,
/* 72909*/      OPC_CheckPredicate, 37, // Predicate_unindexedload
/* 72911*/      OPC_CheckType, MVT::i32,
/* 72913*/      OPC_Scope, 24, /*->72939*/ // 3 children in Scope
/* 72915*/        OPC_CheckPredicate, 60, // Predicate_load
/* 72917*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 72919*/        OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModePC:$addr #2 #3
/* 72922*/        OPC_EmitMergeInputChains1_0,
/* 72923*/        OPC_EmitInteger, MVT::i32, 14, 
/* 72926*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72929*/        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)
/* 72939*/      /*Scope*/ 54, /*->72994*/
/* 72940*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 72942*/        OPC_Scope, 24, /*->72968*/ // 2 children in Scope
/* 72944*/          OPC_CheckPredicate, 39, // Predicate_zextloadi16
/* 72946*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 72948*/          OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModePC:$addr #2 #3
/* 72951*/          OPC_EmitMergeInputChains1_0,
/* 72952*/          OPC_EmitInteger, MVT::i32, 14, 
/* 72955*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72958*/          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)
/* 72968*/        /*Scope*/ 24, /*->72993*/
/* 72969*/          OPC_CheckPredicate, 44, // Predicate_zextloadi8
/* 72971*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 72973*/          OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModePC:$addr #2 #3
/* 72976*/          OPC_EmitMergeInputChains1_0,
/* 72977*/          OPC_EmitInteger, MVT::i32, 14, 
/* 72980*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 72983*/          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)
/* 72993*/        0, /*End of Scope*/
/* 72994*/      /*Scope*/ 105, /*->73100*/
/* 72995*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 72997*/        OPC_Scope, 24, /*->73023*/ // 3 children in Scope
/* 72999*/          OPC_CheckPredicate, 39, // Predicate_sextloadi16
/* 73001*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73003*/          OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModePC:$addr #2 #3
/* 73006*/          OPC_EmitMergeInputChains1_0,
/* 73007*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73010*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73013*/          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)
/* 73023*/        /*Scope*/ 50, /*->73074*/
/* 73024*/          OPC_CheckPredicate, 44, // Predicate_sextloadi8
/* 73026*/          OPC_Scope, 22, /*->73050*/ // 2 children in Scope
/* 73028*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73030*/            OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModePC:$addr #2 #3
/* 73033*/            OPC_EmitMergeInputChains1_0,
/* 73034*/            OPC_EmitInteger, MVT::i32, 14, 
/* 73037*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73040*/            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)
/* 73050*/          /*Scope*/ 22, /*->73073*/
/* 73051*/            OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 73053*/            OPC_CheckComplexPat, /*CP*/39, /*#*/1, // SelectThumbAddrModeRRSext:$addr #2 #3
/* 73056*/            OPC_EmitMergeInputChains1_0,
/* 73057*/            OPC_EmitInteger, MVT::i32, 14, 
/* 73060*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73063*/            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_sext:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 23
                      // Dst: (tLDRSB:{ *:[i32] } t_addrmode_rr_sext:{ *:[i32] }:$addr)
/* 73073*/          0, /*End of Scope*/
/* 73074*/        /*Scope*/ 24, /*->73099*/
/* 73075*/          OPC_CheckPredicate, 39, // Predicate_sextloadi16
/* 73077*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 73079*/          OPC_CheckComplexPat, /*CP*/39, /*#*/1, // SelectThumbAddrModeRRSext:$addr #2 #3
/* 73082*/          OPC_EmitMergeInputChains1_0,
/* 73083*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73086*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73089*/          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_sext:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 23
                    // Dst: (tLDRSH:{ *:[i32] } t_addrmode_rr_sext:{ *:[i32] }:$addr)
/* 73099*/        0, /*End of Scope*/
/* 73100*/      0, /*End of Scope*/
/* 73101*/    /*Scope*/ 100, /*->73202*/
/* 73102*/      OPC_MoveChild1,
/* 73103*/      OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ARMISD::WrapperPIC),// ->73167
/* 73107*/        OPC_RecordChild0, // #1 = $addr
/* 73108*/        OPC_MoveChild0,
/* 73109*/        OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::TargetGlobalAddress),// ->73145
/* 73113*/          OPC_MoveParent,
/* 73114*/          OPC_MoveParent,
/* 73115*/          OPC_CheckPredicate, 37, // Predicate_unindexedload
/* 73117*/          OPC_CheckPredicate, 60, // Predicate_load
/* 73119*/          OPC_CheckType, MVT::i32,
/* 73121*/          OPC_Scope, 10, /*->73133*/ // 2 children in Scope
/* 73123*/            OPC_CheckPatternPredicate, 58, // (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt()) && (!Subtarget->isThumb())
/* 73125*/            OPC_EmitMergeInputChains1_0,
/* 73126*/            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)
/* 73133*/          /*Scope*/ 10, /*->73144*/
/* 73134*/            OPC_CheckPatternPredicate, 59, // (!Subtarget->isThumb()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt())
/* 73136*/            OPC_EmitMergeInputChains1_0,
/* 73137*/            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)
/* 73144*/          0, /*End of Scope*/
/* 73145*/        /*SwitchOpcode*/ 18, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->73166
/* 73148*/          OPC_MoveParent,
/* 73149*/          OPC_MoveParent,
/* 73150*/          OPC_CheckPredicate, 37, // Predicate_unindexedload
/* 73152*/          OPC_CheckPredicate, 60, // Predicate_load
/* 73154*/          OPC_CheckType, MVT::i32,
/* 73156*/          OPC_CheckPatternPredicate, 59, // (!Subtarget->isThumb()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt())
/* 73158*/          OPC_EmitMergeInputChains1_0,
/* 73159*/          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)
/* 73166*/        0, // EndSwitchOpcode
/* 73167*/      /*SwitchOpcode*/ 31, TARGET_VAL(ARMISD::Wrapper),// ->73201
/* 73170*/        OPC_RecordChild0, // #1 = $addr
/* 73171*/        OPC_MoveChild0,
/* 73172*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstantPool),
/* 73175*/        OPC_MoveParent,
/* 73176*/        OPC_MoveParent,
/* 73177*/        OPC_CheckPredicate, 37, // Predicate_unindexedload
/* 73179*/        OPC_CheckPredicate, 60, // Predicate_load
/* 73181*/        OPC_CheckType, MVT::i32,
/* 73183*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 73185*/        OPC_EmitMergeInputChains1_0,
/* 73186*/        OPC_EmitInteger, MVT::i32, 14, 
/* 73189*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73192*/        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)
/* 73201*/      0, // EndSwitchOpcode
/* 73202*/    /*Scope*/ 29|128,16/*2077*/, /*->75281*/
/* 73204*/      OPC_RecordChild1, // #1 = $shift
/* 73205*/      OPC_CheckChild1Type, MVT::i32,
/* 73207*/      OPC_CheckPredicate, 37, // Predicate_unindexedload
/* 73209*/      OPC_CheckType, MVT::i32,
/* 73211*/      OPC_Scope, 25, /*->73238*/ // 22 children in Scope
/* 73213*/        OPC_CheckPredicate, 60, // Predicate_load
/* 73215*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73217*/        OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectLdStSOReg:$shift #2 #3 #4
/* 73220*/        OPC_EmitMergeInputChains1_0,
/* 73221*/        OPC_EmitInteger, MVT::i32, 14, 
/* 73224*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73227*/        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)
/* 73238*/      /*Scope*/ 56, /*->73295*/
/* 73239*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 73241*/        OPC_Scope, 25, /*->73268*/ // 2 children in Scope
/* 73243*/          OPC_CheckPredicate, 44, // Predicate_zextloadi8
/* 73245*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73247*/          OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectLdStSOReg:$shift #2 #3 #4
/* 73250*/          OPC_EmitMergeInputChains1_0,
/* 73251*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73254*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73257*/          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)
/* 73268*/        /*Scope*/ 25, /*->73294*/
/* 73269*/          OPC_CheckPredicate, 39, // Predicate_zextloadi16
/* 73271*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73273*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrMode3:$addr #2 #3 #4
/* 73276*/          OPC_EmitMergeInputChains1_0,
/* 73277*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73280*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73283*/          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)
/* 73294*/        0, /*End of Scope*/
/* 73295*/      /*Scope*/ 56, /*->73352*/
/* 73296*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 73298*/        OPC_Scope, 25, /*->73325*/ // 2 children in Scope
/* 73300*/          OPC_CheckPredicate, 39, // Predicate_sextloadi16
/* 73302*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73304*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrMode3:$addr #2 #3 #4
/* 73307*/          OPC_EmitMergeInputChains1_0,
/* 73308*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73311*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73314*/          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)
/* 73325*/        /*Scope*/ 25, /*->73351*/
/* 73326*/          OPC_CheckPredicate, 44, // Predicate_sextloadi8
/* 73328*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73330*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrMode3:$addr #2 #3 #4
/* 73333*/          OPC_EmitMergeInputChains1_0,
/* 73334*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73337*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73340*/          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)
/* 73351*/        0, /*End of Scope*/
/* 73352*/      /*Scope*/ 27, /*->73380*/
/* 73353*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 73355*/        OPC_CheckPredicate, 63, // Predicate_zextloadi1
/* 73357*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73359*/        OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectLdStSOReg:$addr #2 #3 #4
/* 73362*/        OPC_EmitMergeInputChains1_0,
/* 73363*/        OPC_EmitInteger, MVT::i32, 14, 
/* 73366*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73369*/        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)
/* 73380*/      /*Scope*/ 82, /*->73463*/
/* 73381*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 73383*/        OPC_Scope, 25, /*->73410*/ // 3 children in Scope
/* 73385*/          OPC_CheckPredicate, 63, // Predicate_extloadi1
/* 73387*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73389*/          OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectLdStSOReg:$addr #2 #3 #4
/* 73392*/          OPC_EmitMergeInputChains1_0,
/* 73393*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73396*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73399*/          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)
/* 73410*/        /*Scope*/ 25, /*->73436*/
/* 73411*/          OPC_CheckPredicate, 44, // Predicate_extloadi8
/* 73413*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73415*/          OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectLdStSOReg:$addr #2 #3 #4
/* 73418*/          OPC_EmitMergeInputChains1_0,
/* 73419*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73422*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73425*/          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)
/* 73436*/        /*Scope*/ 25, /*->73462*/
/* 73437*/          OPC_CheckPredicate, 39, // Predicate_extloadi16
/* 73439*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73441*/          OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrMode3:$addr #2 #3 #4
/* 73444*/          OPC_EmitMergeInputChains1_0,
/* 73445*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73448*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73451*/          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)
/* 73462*/        0, /*End of Scope*/
/* 73463*/      /*Scope*/ 25, /*->73489*/
/* 73464*/        OPC_CheckPredicate, 60, // Predicate_load
/* 73466*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 73468*/        OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 73471*/        OPC_EmitMergeInputChains1_0,
/* 73472*/        OPC_EmitInteger, MVT::i32, 14, 
/* 73475*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73478*/        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)
/* 73489*/      /*Scope*/ 56, /*->73546*/
/* 73490*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 73492*/        OPC_Scope, 25, /*->73519*/ // 2 children in Scope
/* 73494*/          OPC_CheckPredicate, 39, // Predicate_zextloadi16
/* 73496*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 73498*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 73501*/          OPC_EmitMergeInputChains1_0,
/* 73502*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73505*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73508*/          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)
/* 73519*/        /*Scope*/ 25, /*->73545*/
/* 73520*/          OPC_CheckPredicate, 44, // Predicate_zextloadi8
/* 73522*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 73524*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 73527*/          OPC_EmitMergeInputChains1_0,
/* 73528*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73531*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73534*/          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)
/* 73545*/        0, /*End of Scope*/
/* 73546*/      /*Scope*/ 56, /*->73603*/
/* 73547*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 73549*/        OPC_Scope, 25, /*->73576*/ // 2 children in Scope
/* 73551*/          OPC_CheckPredicate, 39, // Predicate_sextloadi16
/* 73553*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 73555*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 73558*/          OPC_EmitMergeInputChains1_0,
/* 73559*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73562*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73565*/          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)
/* 73576*/        /*Scope*/ 25, /*->73602*/
/* 73577*/          OPC_CheckPredicate, 44, // Predicate_sextloadi8
/* 73579*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 73581*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 73584*/          OPC_EmitMergeInputChains1_0,
/* 73585*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73588*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73591*/          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)
/* 73602*/        0, /*End of Scope*/
/* 73603*/      /*Scope*/ 27, /*->73631*/
/* 73604*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 73606*/        OPC_CheckPredicate, 63, // Predicate_zextloadi1
/* 73608*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 73610*/        OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 73613*/        OPC_EmitMergeInputChains1_0,
/* 73614*/        OPC_EmitInteger, MVT::i32, 14, 
/* 73617*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73620*/        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)
/* 73631*/      /*Scope*/ 82, /*->73714*/
/* 73632*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 73634*/        OPC_Scope, 25, /*->73661*/ // 3 children in Scope
/* 73636*/          OPC_CheckPredicate, 63, // Predicate_extloadi1
/* 73638*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 73640*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 73643*/          OPC_EmitMergeInputChains1_0,
/* 73644*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73647*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73650*/          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)
/* 73661*/        /*Scope*/ 25, /*->73687*/
/* 73662*/          OPC_CheckPredicate, 44, // Predicate_extloadi8
/* 73664*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 73666*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 73669*/          OPC_EmitMergeInputChains1_0,
/* 73670*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73673*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73676*/          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)
/* 73687*/        /*Scope*/ 25, /*->73713*/
/* 73688*/          OPC_CheckPredicate, 39, // Predicate_extloadi16
/* 73690*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 73692*/          OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 73695*/          OPC_EmitMergeInputChains1_0,
/* 73696*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73699*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73702*/          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)
/* 73713*/        0, /*End of Scope*/
/* 73714*/      /*Scope*/ 24, /*->73739*/
/* 73715*/        OPC_CheckPredicate, 60, // Predicate_load
/* 73717*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73719*/        OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 73722*/        OPC_EmitMergeInputChains1_0,
/* 73723*/        OPC_EmitInteger, MVT::i32, 14, 
/* 73726*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73729*/        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)
/* 73739*/      /*Scope*/ 54, /*->73794*/
/* 73740*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 73742*/        OPC_Scope, 24, /*->73768*/ // 2 children in Scope
/* 73744*/          OPC_CheckPredicate, 44, // Predicate_zextloadi8
/* 73746*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73748*/          OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 73751*/          OPC_EmitMergeInputChains1_0,
/* 73752*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73755*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73758*/          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)
/* 73768*/        /*Scope*/ 24, /*->73793*/
/* 73769*/          OPC_CheckPredicate, 63, // Predicate_zextloadi1
/* 73771*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73773*/          OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 73776*/          OPC_EmitMergeInputChains1_0,
/* 73777*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73780*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73783*/          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)
/* 73793*/        0, /*End of Scope*/
/* 73794*/      /*Scope*/ 103, /*->73898*/
/* 73795*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 73797*/        OPC_Scope, 24, /*->73823*/ // 3 children in Scope
/* 73799*/          OPC_CheckPredicate, 63, // Predicate_extloadi1
/* 73801*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73803*/          OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 73806*/          OPC_EmitMergeInputChains1_0,
/* 73807*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73810*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73813*/          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)
/* 73823*/        /*Scope*/ 48, /*->73872*/
/* 73824*/          OPC_CheckPredicate, 44, // Predicate_extloadi8
/* 73826*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73828*/          OPC_Scope, 20, /*->73850*/ // 2 children in Scope
/* 73830*/            OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectAddrModeImm12:$addr #2 #3
/* 73833*/            OPC_EmitMergeInputChains1_0,
/* 73834*/            OPC_EmitInteger, MVT::i32, 14, 
/* 73837*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73840*/            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)
/* 73850*/          /*Scope*/ 20, /*->73871*/
/* 73851*/            OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModePC:$addr #2 #3
/* 73854*/            OPC_EmitMergeInputChains1_0,
/* 73855*/            OPC_EmitInteger, MVT::i32, 14, 
/* 73858*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73861*/            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)
/* 73871*/          0, /*End of Scope*/
/* 73872*/        /*Scope*/ 24, /*->73897*/
/* 73873*/          OPC_CheckPredicate, 39, // Predicate_extloadi16
/* 73875*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 73877*/          OPC_CheckComplexPat, /*CP*/15, /*#*/1, // SelectAddrModePC:$addr #2 #3
/* 73880*/          OPC_EmitMergeInputChains1_0,
/* 73881*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73884*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73887*/          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)
/* 73897*/        0, /*End of Scope*/
/* 73898*/      /*Scope*/ 69, /*->73968*/
/* 73899*/        OPC_CheckPredicate, 60, // Predicate_load
/* 73901*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 73903*/        OPC_Scope, 20, /*->73925*/ // 3 children in Scope
/* 73905*/          OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectThumbAddrModeSP:$addr #2 #3
/* 73908*/          OPC_EmitMergeInputChains1_0,
/* 73909*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73912*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73915*/          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)
/* 73925*/        /*Scope*/ 20, /*->73946*/
/* 73926*/          OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectThumbAddrModeImm5S4:$addr #2 #3
/* 73929*/          OPC_EmitMergeInputChains1_0,
/* 73930*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73933*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73936*/          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)
/* 73946*/        /*Scope*/ 20, /*->73967*/
/* 73947*/          OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 73950*/          OPC_EmitMergeInputChains1_0,
/* 73951*/          OPC_EmitInteger, MVT::i32, 14, 
/* 73954*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73957*/          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)
/* 73967*/        0, /*End of Scope*/
/* 73968*/      /*Scope*/ 23|128,1/*151*/, /*->74121*/
/* 73970*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 73972*/        OPC_Scope, 48, /*->74022*/ // 3 children in Scope
/* 73974*/          OPC_CheckPredicate, 44, // Predicate_zextloadi8
/* 73976*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 73978*/          OPC_Scope, 20, /*->74000*/ // 2 children in Scope
/* 73980*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectThumbAddrModeImm5S1:$addr #2 #3
/* 73983*/            OPC_EmitMergeInputChains1_0,
/* 73984*/            OPC_EmitInteger, MVT::i32, 14, 
/* 73987*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 73990*/            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)
/* 74000*/          /*Scope*/ 20, /*->74021*/
/* 74001*/            OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 74004*/            OPC_EmitMergeInputChains1_0,
/* 74005*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74008*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74011*/            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)
/* 74021*/          0, /*End of Scope*/
/* 74022*/        /*Scope*/ 48, /*->74071*/
/* 74023*/          OPC_CheckPredicate, 39, // Predicate_zextloadi16
/* 74025*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 74027*/          OPC_Scope, 20, /*->74049*/ // 2 children in Scope
/* 74029*/            OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectThumbAddrModeImm5S2:$addr #2 #3
/* 74032*/            OPC_EmitMergeInputChains1_0,
/* 74033*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74036*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74039*/            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)
/* 74049*/          /*Scope*/ 20, /*->74070*/
/* 74050*/            OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 74053*/            OPC_EmitMergeInputChains1_0,
/* 74054*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74057*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74060*/            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)
/* 74070*/          0, /*End of Scope*/
/* 74071*/        /*Scope*/ 48, /*->74120*/
/* 74072*/          OPC_CheckPredicate, 63, // Predicate_zextloadi1
/* 74074*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 74076*/          OPC_Scope, 20, /*->74098*/ // 2 children in Scope
/* 74078*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectThumbAddrModeImm5S1:$addr #2 #3
/* 74081*/            OPC_EmitMergeInputChains1_0,
/* 74082*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74085*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74088*/            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)
/* 74098*/          /*Scope*/ 20, /*->74119*/
/* 74099*/            OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 74102*/            OPC_EmitMergeInputChains1_0,
/* 74103*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74106*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74109*/            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)
/* 74119*/          0, /*End of Scope*/
/* 74120*/        0, /*End of Scope*/
/* 74121*/      /*Scope*/ 98|128,1/*226*/, /*->74349*/
/* 74123*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 74125*/        OPC_Scope, 24, /*->74151*/ // 6 children in Scope
/* 74127*/          OPC_CheckPredicate, 63, // Predicate_extloadi1
/* 74129*/          OPC_CheckPatternPredicate, 60, // (MF->getDataLayout().isLittleEndian()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 74131*/          OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectThumbAddrModeSP:$addr #2 #3
/* 74134*/          OPC_EmitMergeInputChains1_0,
/* 74135*/          OPC_EmitInteger, MVT::i32, 14, 
/* 74138*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74141*/          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)
/* 74151*/        /*Scope*/ 24, /*->74176*/
/* 74152*/          OPC_CheckPredicate, 44, // Predicate_extloadi8
/* 74154*/          OPC_CheckPatternPredicate, 60, // (MF->getDataLayout().isLittleEndian()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 74156*/          OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectThumbAddrModeSP:$addr #2 #3
/* 74159*/          OPC_EmitMergeInputChains1_0,
/* 74160*/          OPC_EmitInteger, MVT::i32, 14, 
/* 74163*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74166*/          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)
/* 74176*/        /*Scope*/ 24, /*->74201*/
/* 74177*/          OPC_CheckPredicate, 39, // Predicate_extloadi16
/* 74179*/          OPC_CheckPatternPredicate, 60, // (MF->getDataLayout().isLittleEndian()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 74181*/          OPC_CheckComplexPat, /*CP*/24, /*#*/1, // SelectThumbAddrModeSP:$addr #2 #3
/* 74184*/          OPC_EmitMergeInputChains1_0,
/* 74185*/          OPC_EmitInteger, MVT::i32, 14, 
/* 74188*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74191*/          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)
/* 74201*/        /*Scope*/ 48, /*->74250*/
/* 74202*/          OPC_CheckPredicate, 63, // Predicate_extloadi1
/* 74204*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 74206*/          OPC_Scope, 20, /*->74228*/ // 2 children in Scope
/* 74208*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectThumbAddrModeImm5S1:$addr #2 #3
/* 74211*/            OPC_EmitMergeInputChains1_0,
/* 74212*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74215*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74218*/            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)
/* 74228*/          /*Scope*/ 20, /*->74249*/
/* 74229*/            OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 74232*/            OPC_EmitMergeInputChains1_0,
/* 74233*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74236*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74239*/            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)
/* 74249*/          0, /*End of Scope*/
/* 74250*/        /*Scope*/ 48, /*->74299*/
/* 74251*/          OPC_CheckPredicate, 44, // Predicate_extloadi8
/* 74253*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 74255*/          OPC_Scope, 20, /*->74277*/ // 2 children in Scope
/* 74257*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectThumbAddrModeImm5S1:$addr #2 #3
/* 74260*/            OPC_EmitMergeInputChains1_0,
/* 74261*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74264*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74267*/            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)
/* 74277*/          /*Scope*/ 20, /*->74298*/
/* 74278*/            OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 74281*/            OPC_EmitMergeInputChains1_0,
/* 74282*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74285*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74288*/            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)
/* 74298*/          0, /*End of Scope*/
/* 74299*/        /*Scope*/ 48, /*->74348*/
/* 74300*/          OPC_CheckPredicate, 39, // Predicate_extloadi16
/* 74302*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 74304*/          OPC_Scope, 20, /*->74326*/ // 2 children in Scope
/* 74306*/            OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectThumbAddrModeImm5S2:$addr #2 #3
/* 74309*/            OPC_EmitMergeInputChains1_0,
/* 74310*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74313*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74316*/            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)
/* 74326*/          /*Scope*/ 20, /*->74347*/
/* 74327*/            OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 74330*/            OPC_EmitMergeInputChains1_0,
/* 74331*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74334*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74337*/            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)
/* 74347*/          0, /*End of Scope*/
/* 74348*/        0, /*End of Scope*/
/* 74349*/      /*Scope*/ 48, /*->74398*/
/* 74350*/        OPC_CheckPredicate, 60, // Predicate_load
/* 74352*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 74354*/        OPC_Scope, 20, /*->74376*/ // 2 children in Scope
/* 74356*/          OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 74359*/          OPC_EmitMergeInputChains1_0,
/* 74360*/          OPC_EmitInteger, MVT::i32, 14, 
/* 74363*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74366*/          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)
/* 74376*/        /*Scope*/ 20, /*->74397*/
/* 74377*/          OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 74380*/          OPC_EmitMergeInputChains1_0,
/* 74381*/          OPC_EmitInteger, MVT::i32, 14, 
/* 74384*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74387*/          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)
/* 74397*/        0, /*End of Scope*/
/* 74398*/      /*Scope*/ 102, /*->74501*/
/* 74399*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 74401*/        OPC_Scope, 48, /*->74451*/ // 2 children in Scope
/* 74403*/          OPC_CheckPredicate, 39, // Predicate_zextloadi16
/* 74405*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 74407*/          OPC_Scope, 20, /*->74429*/ // 2 children in Scope
/* 74409*/            OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 74412*/            OPC_EmitMergeInputChains1_0,
/* 74413*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74416*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74419*/            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)
/* 74429*/          /*Scope*/ 20, /*->74450*/
/* 74430*/            OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 74433*/            OPC_EmitMergeInputChains1_0,
/* 74434*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74437*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74440*/            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)
/* 74450*/          0, /*End of Scope*/
/* 74451*/        /*Scope*/ 48, /*->74500*/
/* 74452*/          OPC_CheckPredicate, 44, // Predicate_zextloadi8
/* 74454*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 74456*/          OPC_Scope, 20, /*->74478*/ // 2 children in Scope
/* 74458*/            OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 74461*/            OPC_EmitMergeInputChains1_0,
/* 74462*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74465*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74468*/            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)
/* 74478*/          /*Scope*/ 20, /*->74499*/
/* 74479*/            OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 74482*/            OPC_EmitMergeInputChains1_0,
/* 74483*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74486*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74489*/            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)
/* 74499*/          0, /*End of Scope*/
/* 74500*/        0, /*End of Scope*/
/* 74501*/      /*Scope*/ 102, /*->74604*/
/* 74502*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 74504*/        OPC_Scope, 48, /*->74554*/ // 2 children in Scope
/* 74506*/          OPC_CheckPredicate, 39, // Predicate_sextloadi16
/* 74508*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 74510*/          OPC_Scope, 20, /*->74532*/ // 2 children in Scope
/* 74512*/            OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 74515*/            OPC_EmitMergeInputChains1_0,
/* 74516*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74519*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74522*/            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)
/* 74532*/          /*Scope*/ 20, /*->74553*/
/* 74533*/            OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 74536*/            OPC_EmitMergeInputChains1_0,
/* 74537*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74540*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74543*/            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)
/* 74553*/          0, /*End of Scope*/
/* 74554*/        /*Scope*/ 48, /*->74603*/
/* 74555*/          OPC_CheckPredicate, 44, // Predicate_sextloadi8
/* 74557*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 74559*/          OPC_Scope, 20, /*->74581*/ // 2 children in Scope
/* 74561*/            OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 74564*/            OPC_EmitMergeInputChains1_0,
/* 74565*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74568*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74571*/            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)
/* 74581*/          /*Scope*/ 20, /*->74602*/
/* 74582*/            OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 74585*/            OPC_EmitMergeInputChains1_0,
/* 74586*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74589*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74592*/            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)
/* 74602*/          0, /*End of Scope*/
/* 74603*/        0, /*End of Scope*/
/* 74604*/      /*Scope*/ 50, /*->74655*/
/* 74605*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 74607*/        OPC_CheckPredicate, 63, // Predicate_zextloadi1
/* 74609*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 74611*/        OPC_Scope, 20, /*->74633*/ // 2 children in Scope
/* 74613*/          OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 74616*/          OPC_EmitMergeInputChains1_0,
/* 74617*/          OPC_EmitInteger, MVT::i32, 14, 
/* 74620*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74623*/          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)
/* 74633*/        /*Scope*/ 20, /*->74654*/
/* 74634*/          OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 74637*/          OPC_EmitMergeInputChains1_0,
/* 74638*/          OPC_EmitInteger, MVT::i32, 14, 
/* 74641*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74644*/          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)
/* 74654*/        0, /*End of Scope*/
/* 74655*/      /*Scope*/ 23|128,1/*151*/, /*->74808*/
/* 74657*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 74659*/        OPC_Scope, 48, /*->74709*/ // 3 children in Scope
/* 74661*/          OPC_CheckPredicate, 63, // Predicate_extloadi1
/* 74663*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 74665*/          OPC_Scope, 20, /*->74687*/ // 2 children in Scope
/* 74667*/            OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 74670*/            OPC_EmitMergeInputChains1_0,
/* 74671*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74674*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74677*/            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)
/* 74687*/          /*Scope*/ 20, /*->74708*/
/* 74688*/            OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 74691*/            OPC_EmitMergeInputChains1_0,
/* 74692*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74695*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74698*/            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)
/* 74708*/          0, /*End of Scope*/
/* 74709*/        /*Scope*/ 48, /*->74758*/
/* 74710*/          OPC_CheckPredicate, 44, // Predicate_extloadi8
/* 74712*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 74714*/          OPC_Scope, 20, /*->74736*/ // 2 children in Scope
/* 74716*/            OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 74719*/            OPC_EmitMergeInputChains1_0,
/* 74720*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74723*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74726*/            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)
/* 74736*/          /*Scope*/ 20, /*->74757*/
/* 74737*/            OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 74740*/            OPC_EmitMergeInputChains1_0,
/* 74741*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74744*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74747*/            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)
/* 74757*/          0, /*End of Scope*/
/* 74758*/        /*Scope*/ 48, /*->74807*/
/* 74759*/          OPC_CheckPredicate, 39, // Predicate_extloadi16
/* 74761*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 74763*/          OPC_Scope, 20, /*->74785*/ // 2 children in Scope
/* 74765*/            OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 74768*/            OPC_EmitMergeInputChains1_0,
/* 74769*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74772*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74775*/            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)
/* 74785*/          /*Scope*/ 20, /*->74806*/
/* 74786*/            OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 74789*/            OPC_EmitMergeInputChains1_0,
/* 74790*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74793*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74796*/            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)
/* 74806*/          0, /*End of Scope*/
/* 74807*/        0, /*End of Scope*/
/* 74808*/      /*Scope*/ 86|128,3/*470*/, /*->75280*/
/* 74810*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 74812*/        OPC_Scope, 84, /*->74898*/ // 4 children in Scope
/* 74814*/          OPC_CheckPredicate, 44, // Predicate_sextloadi8
/* 74816*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 74818*/          OPC_Scope, 38, /*->74858*/ // 2 children in Scope
/* 74820*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectThumbAddrModeImm5S1:$addr #2 #3
/* 74823*/            OPC_EmitMergeInputChains1_0,
/* 74824*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74827*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74830*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRBi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 74840*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74843*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74846*/            OPC_EmitNode1, TARGET_VAL(ARM::tSXTB), 0,
                          MVT::i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 74855*/            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))
/* 74858*/          /*Scope*/ 38, /*->74897*/
/* 74859*/            OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 74862*/            OPC_EmitMergeInputChains1_0,
/* 74863*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74866*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74869*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRBr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 74879*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74882*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74885*/            OPC_EmitNode1, TARGET_VAL(ARM::tSXTB), 0,
                          MVT::i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 74894*/            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))
/* 74897*/          0, /*End of Scope*/
/* 74898*/        /*Scope*/ 84, /*->74983*/
/* 74899*/          OPC_CheckPredicate, 39, // Predicate_sextloadi16
/* 74901*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 74903*/          OPC_Scope, 38, /*->74943*/ // 2 children in Scope
/* 74905*/            OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectThumbAddrModeImm5S2:$addr #2 #3
/* 74908*/            OPC_EmitMergeInputChains1_0,
/* 74909*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74912*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74915*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRHi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 74925*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74928*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74931*/            OPC_EmitNode1, TARGET_VAL(ARM::tSXTH), 0,
                          MVT::i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 74940*/            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))
/* 74943*/          /*Scope*/ 38, /*->74982*/
/* 74944*/            OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 74947*/            OPC_EmitMergeInputChains1_0,
/* 74948*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74951*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74954*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRHr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 74964*/            OPC_EmitInteger, MVT::i32, 14, 
/* 74967*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 74970*/            OPC_EmitNode1, TARGET_VAL(ARM::tSXTH), 0,
                          MVT::i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 74979*/            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))
/* 74982*/          0, /*End of Scope*/
/* 74983*/        /*Scope*/ 18|128,1/*146*/, /*->75131*/
/* 74985*/          OPC_CheckPredicate, 44, // Predicate_sextloadi8
/* 74987*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 74989*/          OPC_Scope, 69, /*->75060*/ // 2 children in Scope
/* 74991*/            OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectThumbAddrModeImm5S1:$addr #2 #3
/* 74994*/            OPC_EmitMergeInputChains1_0,
/* 74995*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 74998*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 75001*/            OPC_EmitInteger, MVT::i32, 14, 
/* 75004*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75007*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRBi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 6, 7,  // Results = #8
/* 75017*/            OPC_EmitInteger, MVT::i32, 24, 
/* 75020*/            OPC_EmitInteger, MVT::i32, 14, 
/* 75023*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75026*/            OPC_EmitNode1, TARGET_VAL(ARM::tLSLri), 0,
                          MVT::i32, 5/*#Ops*/, 5, 8, 9, 10, 11,  // Results = #12
/* 75037*/            OPC_EmitInteger, MVT::i32, 24, 
/* 75040*/            OPC_EmitInteger, MVT::i32, 14, 
/* 75043*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75046*/            OPC_EmitNode1, TARGET_VAL(ARM::tASRri), 0,
                          MVT::i32, 5/*#Ops*/, 4, 12, 13, 14, 15,  // Results = #16
/* 75057*/            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] })
/* 75060*/          /*Scope*/ 69, /*->75130*/
/* 75061*/            OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 75064*/            OPC_EmitMergeInputChains1_0,
/* 75065*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 75068*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 75071*/            OPC_EmitInteger, MVT::i32, 14, 
/* 75074*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75077*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRBr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 6, 7,  // Results = #8
/* 75087*/            OPC_EmitInteger, MVT::i32, 24, 
/* 75090*/            OPC_EmitInteger, MVT::i32, 14, 
/* 75093*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75096*/            OPC_EmitNode1, TARGET_VAL(ARM::tLSLri), 0,
                          MVT::i32, 5/*#Ops*/, 5, 8, 9, 10, 11,  // Results = #12
/* 75107*/            OPC_EmitInteger, MVT::i32, 24, 
/* 75110*/            OPC_EmitInteger, MVT::i32, 14, 
/* 75113*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75116*/            OPC_EmitNode1, TARGET_VAL(ARM::tASRri), 0,
                          MVT::i32, 5/*#Ops*/, 4, 12, 13, 14, 15,  // Results = #16
/* 75127*/            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] })
/* 75130*/          0, /*End of Scope*/
/* 75131*/        /*Scope*/ 18|128,1/*146*/, /*->75279*/
/* 75133*/          OPC_CheckPredicate, 39, // Predicate_sextloadi16
/* 75135*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 75137*/          OPC_Scope, 69, /*->75208*/ // 2 children in Scope
/* 75139*/            OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectThumbAddrModeImm5S2:$addr #2 #3
/* 75142*/            OPC_EmitMergeInputChains1_0,
/* 75143*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 75146*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 75149*/            OPC_EmitInteger, MVT::i32, 14, 
/* 75152*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75155*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRHi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 6, 7,  // Results = #8
/* 75165*/            OPC_EmitInteger, MVT::i32, 16, 
/* 75168*/            OPC_EmitInteger, MVT::i32, 14, 
/* 75171*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75174*/            OPC_EmitNode1, TARGET_VAL(ARM::tLSLri), 0,
                          MVT::i32, 5/*#Ops*/, 5, 8, 9, 10, 11,  // Results = #12
/* 75185*/            OPC_EmitInteger, MVT::i32, 16, 
/* 75188*/            OPC_EmitInteger, MVT::i32, 14, 
/* 75191*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75194*/            OPC_EmitNode1, TARGET_VAL(ARM::tASRri), 0,
                          MVT::i32, 5/*#Ops*/, 4, 12, 13, 14, 15,  // Results = #16
/* 75205*/            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] })
/* 75208*/          /*Scope*/ 69, /*->75278*/
/* 75209*/            OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$addr #2 #3
/* 75212*/            OPC_EmitMergeInputChains1_0,
/* 75213*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 75216*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 75219*/            OPC_EmitInteger, MVT::i32, 14, 
/* 75222*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75225*/            OPC_EmitNode1, TARGET_VAL(ARM::tLDRHr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 4/*#Ops*/, 2, 3, 6, 7,  // Results = #8
/* 75235*/            OPC_EmitInteger, MVT::i32, 16, 
/* 75238*/            OPC_EmitInteger, MVT::i32, 14, 
/* 75241*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75244*/            OPC_EmitNode1, TARGET_VAL(ARM::tLSLri), 0,
                          MVT::i32, 5/*#Ops*/, 5, 8, 9, 10, 11,  // Results = #12
/* 75255*/            OPC_EmitInteger, MVT::i32, 16, 
/* 75258*/            OPC_EmitInteger, MVT::i32, 14, 
/* 75261*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75264*/            OPC_EmitNode1, TARGET_VAL(ARM::tASRri), 0,
                          MVT::i32, 5/*#Ops*/, 4, 12, 13, 14, 15,  // Results = #16
/* 75275*/            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] })
/* 75278*/          0, /*End of Scope*/
/* 75279*/        0, /*End of Scope*/
/* 75280*/      0, /*End of Scope*/
/* 75281*/    /*Scope*/ 95|128,1/*223*/, /*->75506*/
/* 75283*/      OPC_MoveChild1,
/* 75284*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::Wrapper),
/* 75287*/      OPC_RecordChild0, // #1 = $addr
/* 75288*/      OPC_MoveChild0,
/* 75289*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstantPool),
/* 75292*/      OPC_MoveParent,
/* 75293*/      OPC_MoveParent,
/* 75294*/      OPC_CheckPredicate, 37, // Predicate_unindexedload
/* 75296*/      OPC_CheckType, MVT::i32,
/* 75298*/      OPC_Scope, 20, /*->75320*/ // 5 children in Scope
/* 75300*/        OPC_CheckPredicate, 60, // Predicate_load
/* 75302*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 75304*/        OPC_EmitMergeInputChains1_0,
/* 75305*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75308*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75311*/        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)
/* 75320*/      /*Scope*/ 46, /*->75367*/
/* 75321*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 75323*/        OPC_Scope, 20, /*->75345*/ // 2 children in Scope
/* 75325*/          OPC_CheckPredicate, 39, // Predicate_zextloadi16
/* 75327*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 75329*/          OPC_EmitMergeInputChains1_0,
/* 75330*/          OPC_EmitInteger, MVT::i32, 14, 
/* 75333*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75336*/          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)
/* 75345*/        /*Scope*/ 20, /*->75366*/
/* 75346*/          OPC_CheckPredicate, 44, // Predicate_zextloadi8
/* 75348*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 75350*/          OPC_EmitMergeInputChains1_0,
/* 75351*/          OPC_EmitInteger, MVT::i32, 14, 
/* 75354*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75357*/          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)
/* 75366*/        0, /*End of Scope*/
/* 75367*/      /*Scope*/ 46, /*->75414*/
/* 75368*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 75370*/        OPC_Scope, 20, /*->75392*/ // 2 children in Scope
/* 75372*/          OPC_CheckPredicate, 39, // Predicate_sextloadi16
/* 75374*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 75376*/          OPC_EmitMergeInputChains1_0,
/* 75377*/          OPC_EmitInteger, MVT::i32, 14, 
/* 75380*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75383*/          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)
/* 75392*/        /*Scope*/ 20, /*->75413*/
/* 75393*/          OPC_CheckPredicate, 44, // Predicate_sextloadi8
/* 75395*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 75397*/          OPC_EmitMergeInputChains1_0,
/* 75398*/          OPC_EmitInteger, MVT::i32, 14, 
/* 75401*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75404*/          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)
/* 75413*/        0, /*End of Scope*/
/* 75414*/      /*Scope*/ 22, /*->75437*/
/* 75415*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 75417*/        OPC_CheckPredicate, 63, // Predicate_zextloadi1
/* 75419*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 75421*/        OPC_EmitMergeInputChains1_0,
/* 75422*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75425*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75428*/        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)
/* 75437*/      /*Scope*/ 67, /*->75505*/
/* 75438*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 75440*/        OPC_Scope, 20, /*->75462*/ // 3 children in Scope
/* 75442*/          OPC_CheckPredicate, 63, // Predicate_extloadi1
/* 75444*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 75446*/          OPC_EmitMergeInputChains1_0,
/* 75447*/          OPC_EmitInteger, MVT::i32, 14, 
/* 75450*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75453*/          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)
/* 75462*/        /*Scope*/ 20, /*->75483*/
/* 75463*/          OPC_CheckPredicate, 44, // Predicate_extloadi8
/* 75465*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 75467*/          OPC_EmitMergeInputChains1_0,
/* 75468*/          OPC_EmitInteger, MVT::i32, 14, 
/* 75471*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75474*/          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)
/* 75483*/        /*Scope*/ 20, /*->75504*/
/* 75484*/          OPC_CheckPredicate, 39, // Predicate_extloadi16
/* 75486*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 75488*/          OPC_EmitMergeInputChains1_0,
/* 75489*/          OPC_EmitInteger, MVT::i32, 14, 
/* 75492*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75495*/          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)
/* 75504*/        0, /*End of Scope*/
/* 75505*/      0, /*End of Scope*/
/* 75506*/    /*Scope*/ 77|128,41/*5325*/, /*->80833*/
/* 75508*/      OPC_RecordChild1, // #1 = $addr
/* 75509*/      OPC_CheckChild1Type, MVT::i32,
/* 75511*/      OPC_CheckPredicate, 37, // Predicate_unindexedload
/* 75513*/      OPC_Scope, 37|128,1/*165*/, /*->75681*/ // 58 children in Scope
/* 75516*/        OPC_CheckPredicate, 60, // Predicate_load
/* 75518*/        OPC_Scope, 52, /*->75572*/ // 5 children in Scope
/* 75520*/          OPC_CheckPredicate, 64, // Predicate_alignedload32
/* 75522*/          OPC_SwitchType /*2 cases */, 22, MVT::f64,// ->75547
/* 75525*/            OPC_CheckPatternPredicate, 36, // (Subtarget->hasFPRegs())
/* 75527*/            OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectAddrMode5:$addr #2 #3
/* 75530*/            OPC_EmitMergeInputChains1_0,
/* 75531*/            OPC_EmitInteger, MVT::i32, 14, 
/* 75534*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75537*/            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)
/* 75547*/          /*SwitchType*/ 22, MVT::f32,// ->75571
/* 75549*/            OPC_CheckPatternPredicate, 36, // (Subtarget->hasFPRegs())
/* 75551*/            OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectAddrMode5:$addr #2 #3
/* 75554*/            OPC_EmitMergeInputChains1_0,
/* 75555*/            OPC_EmitInteger, MVT::i32, 14, 
/* 75558*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75561*/            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)
/* 75571*/          0, // EndSwitchType
/* 75572*/        /*Scope*/ 26, /*->75599*/
/* 75573*/          OPC_CheckPredicate, 65, // Predicate_alignedload16
/* 75575*/          OPC_CheckType, MVT::f16,
/* 75577*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasFPRegs16())
/* 75579*/          OPC_CheckComplexPat, /*CP*/29, /*#*/1, // SelectAddrMode5FP16:$addr #2 #3
/* 75582*/          OPC_EmitMergeInputChains1_0,
/* 75583*/          OPC_EmitInteger, MVT::i32, 14, 
/* 75586*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75589*/          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)
/* 75599*/        /*Scope*/ 26, /*->75626*/
/* 75600*/          OPC_CheckPredicate, 66, // Predicate_hword_alignedload
/* 75602*/          OPC_CheckType, MVT::f64,
/* 75604*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 75606*/          OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 75609*/          OPC_EmitMergeInputChains1_0,
/* 75610*/          OPC_EmitInteger, MVT::i32, 14, 
/* 75613*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75616*/          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)
/* 75626*/        /*Scope*/ 26, /*->75653*/
/* 75627*/          OPC_CheckPredicate, 67, // Predicate_byte_alignedload
/* 75629*/          OPC_CheckType, MVT::f64,
/* 75631*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 75633*/          OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 75636*/          OPC_EmitMergeInputChains1_0,
/* 75637*/          OPC_EmitInteger, MVT::i32, 14, 
/* 75640*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75643*/          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)
/* 75653*/        /*Scope*/ 26, /*->75680*/
/* 75654*/          OPC_CheckPredicate, 68, // Predicate_non_word_alignedload
/* 75656*/          OPC_CheckType, MVT::f64,
/* 75658*/          OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 75660*/          OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 75663*/          OPC_EmitMergeInputChains1_0,
/* 75664*/          OPC_EmitInteger, MVT::i32, 14, 
/* 75667*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75670*/          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)
/* 75680*/        0, /*End of Scope*/
/* 75681*/      /*Scope*/ 46, /*->75728*/
/* 75682*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 75684*/        OPC_CheckPredicate, 69, // Predicate_extloadvi8
/* 75686*/        OPC_CheckType, MVT::v8i16,
/* 75688*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 75690*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 75693*/        OPC_EmitMergeInputChains1_0,
/* 75694*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75697*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75700*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 75710*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75713*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75716*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 75725*/        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))
/* 75728*/      /*Scope*/ 46, /*->75775*/
/* 75729*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 75731*/        OPC_CheckPredicate, 69, // Predicate_zextloadvi8
/* 75733*/        OPC_CheckType, MVT::v8i16,
/* 75735*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 75737*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 75740*/        OPC_EmitMergeInputChains1_0,
/* 75741*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75744*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75747*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 75757*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75760*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75763*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 75772*/        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))
/* 75775*/      /*Scope*/ 46, /*->75822*/
/* 75776*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 75778*/        OPC_CheckPredicate, 69, // Predicate_sextloadvi8
/* 75780*/        OPC_CheckType, MVT::v8i16,
/* 75782*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 75784*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 75787*/        OPC_EmitMergeInputChains1_0,
/* 75788*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75791*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75794*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 75804*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75807*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75810*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 75819*/        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))
/* 75822*/      /*Scope*/ 46, /*->75869*/
/* 75823*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 75825*/        OPC_CheckPredicate, 70, // Predicate_extloadvi16
/* 75827*/        OPC_CheckType, MVT::v4i32,
/* 75829*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 75831*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 75834*/        OPC_EmitMergeInputChains1_0,
/* 75835*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75838*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75841*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 75851*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75854*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75857*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 75866*/        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))
/* 75869*/      /*Scope*/ 46, /*->75916*/
/* 75870*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 75872*/        OPC_CheckPredicate, 70, // Predicate_zextloadvi16
/* 75874*/        OPC_CheckType, MVT::v4i32,
/* 75876*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 75878*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 75881*/        OPC_EmitMergeInputChains1_0,
/* 75882*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75885*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75888*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 75898*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75901*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75904*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 75913*/        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))
/* 75916*/      /*Scope*/ 46, /*->75963*/
/* 75917*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 75919*/        OPC_CheckPredicate, 70, // Predicate_sextloadvi16
/* 75921*/        OPC_CheckType, MVT::v4i32,
/* 75923*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 75925*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 75928*/        OPC_EmitMergeInputChains1_0,
/* 75929*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75932*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75935*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 75945*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75948*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75951*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 75960*/        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))
/* 75963*/      /*Scope*/ 46, /*->76010*/
/* 75964*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 75966*/        OPC_CheckPredicate, 71, // Predicate_extloadvi32
/* 75968*/        OPC_CheckType, MVT::v2i64,
/* 75970*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 75972*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 75975*/        OPC_EmitMergeInputChains1_0,
/* 75976*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75979*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75982*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 75992*/        OPC_EmitInteger, MVT::i32, 14, 
/* 75995*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 75998*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 76007*/        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))
/* 76010*/      /*Scope*/ 46, /*->76057*/
/* 76011*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 76013*/        OPC_CheckPredicate, 71, // Predicate_zextloadvi32
/* 76015*/        OPC_CheckType, MVT::v2i64,
/* 76017*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76019*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 76022*/        OPC_EmitMergeInputChains1_0,
/* 76023*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76026*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76029*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 76039*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76042*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76045*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 76054*/        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))
/* 76057*/      /*Scope*/ 46, /*->76104*/
/* 76058*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 76060*/        OPC_CheckPredicate, 71, // Predicate_sextloadvi32
/* 76062*/        OPC_CheckType, MVT::v2i64,
/* 76064*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 76066*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 76069*/        OPC_EmitMergeInputChains1_0,
/* 76070*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76073*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76076*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1d32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 76086*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76089*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76092*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 76101*/        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))
/* 76104*/      /*Scope*/ 2|128,3/*386*/, /*->76492*/
/* 76106*/        OPC_CheckPredicate, 60, // Predicate_load
/* 76108*/        OPC_Scope, 100, /*->76210*/ // 6 children in Scope
/* 76110*/          OPC_CheckPredicate, 67, // Predicate_byte_alignedload
/* 76112*/          OPC_SwitchType /*4 cases */, 22, MVT::v16i8,// ->76137
/* 76115*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 76117*/            OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #2 #3
/* 76120*/            OPC_EmitMergeInputChains1_0,
/* 76121*/            OPC_EmitInteger, MVT::i32, 0, 
/* 76124*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76127*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v16i8] } anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_byte_alignedload>> - Complexity = 13
                      // Dst: (MVE_VLDRBU8:{ *:[v16i8] } anonymous_7325:{ *:[i32] }:$addr)
/* 76137*/          /*SwitchType*/ 22, MVT::v8i16,// ->76161
/* 76139*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 76141*/            OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #2 #3
/* 76144*/            OPC_EmitMergeInputChains1_0,
/* 76145*/            OPC_EmitInteger, MVT::i32, 0, 
/* 76148*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76151*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v8i16] } anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_byte_alignedload>> - Complexity = 13
                      // Dst: (MVE_VLDRBU8:{ *:[v8i16] } anonymous_7325:{ *:[i32] }:$addr)
/* 76161*/          /*SwitchType*/ 22, MVT::v4i32,// ->76185
/* 76163*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 76165*/            OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #2 #3
/* 76168*/            OPC_EmitMergeInputChains1_0,
/* 76169*/            OPC_EmitInteger, MVT::i32, 0, 
/* 76172*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76175*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v4i32] } anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_byte_alignedload>> - Complexity = 13
                      // Dst: (MVE_VLDRBU8:{ *:[v4i32] } anonymous_7325:{ *:[i32] }:$addr)
/* 76185*/          /*SwitchType*/ 22, MVT::v2i64,// ->76209
/* 76187*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 76189*/            OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #2 #3
/* 76192*/            OPC_EmitMergeInputChains1_0,
/* 76193*/            OPC_EmitInteger, MVT::i32, 0, 
/* 76196*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76199*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v2i64] } anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_byte_alignedload>> - Complexity = 13
                      // Dst: (MVE_VLDRBU8:{ *:[v2i64] } anonymous_7325:{ *:[i32] }:$addr)
/* 76209*/          0, // EndSwitchType
/* 76210*/        /*Scope*/ 100, /*->76311*/
/* 76211*/          OPC_CheckPredicate, 66, // Predicate_hword_alignedload
/* 76213*/          OPC_SwitchType /*4 cases */, 22, MVT::v16i8,// ->76238
/* 76216*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 76218*/            OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectT2AddrModeImm7<1>:$addr #2 #3
/* 76221*/            OPC_EmitMergeInputChains1_0,
/* 76222*/            OPC_EmitInteger, MVT::i32, 0, 
/* 76225*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76228*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v16i8] } anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_hword_alignedload>> - Complexity = 13
                      // Dst: (MVE_VLDRHU16:{ *:[v16i8] } anonymous_7327:{ *:[i32] }:$addr)
/* 76238*/          /*SwitchType*/ 22, MVT::v8i16,// ->76262
/* 76240*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 76242*/            OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectT2AddrModeImm7<1>:$addr #2 #3
/* 76245*/            OPC_EmitMergeInputChains1_0,
/* 76246*/            OPC_EmitInteger, MVT::i32, 0, 
/* 76249*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76252*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v8i16] } anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_hword_alignedload>> - Complexity = 13
                      // Dst: (MVE_VLDRHU16:{ *:[v8i16] } anonymous_7327:{ *:[i32] }:$addr)
/* 76262*/          /*SwitchType*/ 22, MVT::v4i32,// ->76286
/* 76264*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 76266*/            OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectT2AddrModeImm7<1>:$addr #2 #3
/* 76269*/            OPC_EmitMergeInputChains1_0,
/* 76270*/            OPC_EmitInteger, MVT::i32, 0, 
/* 76273*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76276*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v4i32] } anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_hword_alignedload>> - Complexity = 13
                      // Dst: (MVE_VLDRHU16:{ *:[v4i32] } anonymous_7327:{ *:[i32] }:$addr)
/* 76286*/          /*SwitchType*/ 22, MVT::v2i64,// ->76310
/* 76288*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 76290*/            OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectT2AddrModeImm7<1>:$addr #2 #3
/* 76293*/            OPC_EmitMergeInputChains1_0,
/* 76294*/            OPC_EmitInteger, MVT::i32, 0, 
/* 76297*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76300*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v2i64] } anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_hword_alignedload>> - Complexity = 13
                      // Dst: (MVE_VLDRHU16:{ *:[v2i64] } anonymous_7327:{ *:[i32] }:$addr)
/* 76310*/          0, // EndSwitchType
/* 76311*/        /*Scope*/ 100, /*->76412*/
/* 76312*/          OPC_CheckPredicate, 64, // Predicate_alignedload32
/* 76314*/          OPC_SwitchType /*4 cases */, 22, MVT::v16i8,// ->76339
/* 76317*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 76319*/            OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectT2AddrModeImm7<2>:$addr #2 #3
/* 76322*/            OPC_EmitMergeInputChains1_0,
/* 76323*/            OPC_EmitInteger, MVT::i32, 0, 
/* 76326*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76329*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v16i8] } anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>> - Complexity = 13
                      // Dst: (MVE_VLDRWU32:{ *:[v16i8] } anonymous_7329:{ *:[i32] }:$addr)
/* 76339*/          /*SwitchType*/ 22, MVT::v8i16,// ->76363
/* 76341*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 76343*/            OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectT2AddrModeImm7<2>:$addr #2 #3
/* 76346*/            OPC_EmitMergeInputChains1_0,
/* 76347*/            OPC_EmitInteger, MVT::i32, 0, 
/* 76350*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76353*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v8i16] } anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>> - Complexity = 13
                      // Dst: (MVE_VLDRWU32:{ *:[v8i16] } anonymous_7329:{ *:[i32] }:$addr)
/* 76363*/          /*SwitchType*/ 22, MVT::v4i32,// ->76387
/* 76365*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 76367*/            OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectT2AddrModeImm7<2>:$addr #2 #3
/* 76370*/            OPC_EmitMergeInputChains1_0,
/* 76371*/            OPC_EmitInteger, MVT::i32, 0, 
/* 76374*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76377*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v4i32] } anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>> - Complexity = 13
                      // Dst: (MVE_VLDRWU32:{ *:[v4i32] } anonymous_7329:{ *:[i32] }:$addr)
/* 76387*/          /*SwitchType*/ 22, MVT::v2i64,// ->76411
/* 76389*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 76391*/            OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectT2AddrModeImm7<2>:$addr #2 #3
/* 76394*/            OPC_EmitMergeInputChains1_0,
/* 76395*/            OPC_EmitInteger, MVT::i32, 0, 
/* 76398*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76401*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v2i64] } anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>> - Complexity = 13
                      // Dst: (MVE_VLDRWU32:{ *:[v2i64] } anonymous_7329:{ *:[i32] }:$addr)
/* 76411*/          0, // EndSwitchType
/* 76412*/        /*Scope*/ 24, /*->76437*/
/* 76413*/          OPC_CheckType, MVT::v16i8,
/* 76415*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 76417*/          OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #2 #3
/* 76420*/          OPC_EmitMergeInputChains1_0,
/* 76421*/          OPC_EmitInteger, MVT::i32, 0, 
/* 76424*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76427*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v16i8] } anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (MVE_VLDRBU8:{ *:[v16i8] } anonymous_7325:{ *:[i32] }:$addr)
/* 76437*/        /*Scope*/ 26, /*->76464*/
/* 76438*/          OPC_CheckType, MVT::v8i16,
/* 76440*/          OPC_CheckPredicate, 65, // Predicate_alignedload16
/* 76442*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 76444*/          OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectT2AddrModeImm7<1>:$addr #2 #3
/* 76447*/          OPC_EmitMergeInputChains1_0,
/* 76448*/          OPC_EmitInteger, MVT::i32, 0, 
/* 76451*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76454*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v8i16] } anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload16>> - Complexity = 13
                    // Dst: (MVE_VLDRHU16:{ *:[v8i16] } anonymous_7327:{ *:[i32] }:$addr)
/* 76464*/        /*Scope*/ 26, /*->76491*/
/* 76465*/          OPC_CheckType, MVT::v4i32,
/* 76467*/          OPC_CheckPredicate, 64, // Predicate_alignedload32
/* 76469*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 76471*/          OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectT2AddrModeImm7<2>:$addr #2 #3
/* 76474*/          OPC_EmitMergeInputChains1_0,
/* 76475*/          OPC_EmitInteger, MVT::i32, 0, 
/* 76478*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76481*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v4i32] } anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>> - Complexity = 13
                    // Dst: (MVE_VLDRWU32:{ *:[v4i32] } anonymous_7329:{ *:[i32] }:$addr)
/* 76491*/        0, /*End of Scope*/
/* 76492*/      /*Scope*/ 28, /*->76521*/
/* 76493*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 76495*/        OPC_CheckPredicate, 69, // Predicate_extloadvi8
/* 76497*/        OPC_CheckType, MVT::v8i16,
/* 76499*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 76501*/        OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectTAddrModeImm7<0>:$addr #2 #3
/* 76504*/        OPC_EmitMergeInputChains1_0,
/* 76505*/        OPC_EmitInteger, MVT::i32, 0, 
/* 76508*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76511*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (ld:{ *:[v8i16] } anonymous_7319:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi8>> - Complexity = 13
                  // Dst: (MVE_VLDRBU16:{ *:[v8i16] } anonymous_7319:{ *:[i32] }:$addr)
/* 76521*/      /*Scope*/ 28, /*->76550*/
/* 76522*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 76524*/        OPC_CheckPredicate, 69, // Predicate_sextloadvi8
/* 76526*/        OPC_CheckType, MVT::v8i16,
/* 76528*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 76530*/        OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectTAddrModeImm7<0>:$addr #2 #3
/* 76533*/        OPC_EmitMergeInputChains1_0,
/* 76534*/        OPC_EmitInteger, MVT::i32, 0, 
/* 76537*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76540*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBS16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (ld:{ *:[v8i16] } anonymous_7319:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 13
                  // Dst: (MVE_VLDRBS16:{ *:[v8i16] } anonymous_7319:{ *:[i32] }:$addr)
/* 76550*/      /*Scope*/ 28, /*->76579*/
/* 76551*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 76553*/        OPC_CheckPredicate, 69, // Predicate_zextloadvi8
/* 76555*/        OPC_CheckType, MVT::v8i16,
/* 76557*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 76559*/        OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectTAddrModeImm7<0>:$addr #2 #3
/* 76562*/        OPC_EmitMergeInputChains1_0,
/* 76563*/        OPC_EmitInteger, MVT::i32, 0, 
/* 76566*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76569*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (ld:{ *:[v8i16] } anonymous_7319:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 13
                  // Dst: (MVE_VLDRBU16:{ *:[v8i16] } anonymous_7319:{ *:[i32] }:$addr)
/* 76579*/      /*Scope*/ 28, /*->76608*/
/* 76580*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 76582*/        OPC_CheckPredicate, 69, // Predicate_extloadvi8
/* 76584*/        OPC_CheckType, MVT::v4i32,
/* 76586*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 76588*/        OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectTAddrModeImm7<0>:$addr #2 #3
/* 76591*/        OPC_EmitMergeInputChains1_0,
/* 76592*/        OPC_EmitInteger, MVT::i32, 0, 
/* 76595*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76598*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (ld:{ *:[v4i32] } anonymous_7319:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi8>> - Complexity = 13
                  // Dst: (MVE_VLDRBU32:{ *:[v4i32] } anonymous_7319:{ *:[i32] }:$addr)
/* 76608*/      /*Scope*/ 28, /*->76637*/
/* 76609*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 76611*/        OPC_CheckPredicate, 69, // Predicate_sextloadvi8
/* 76613*/        OPC_CheckType, MVT::v4i32,
/* 76615*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 76617*/        OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectTAddrModeImm7<0>:$addr #2 #3
/* 76620*/        OPC_EmitMergeInputChains1_0,
/* 76621*/        OPC_EmitInteger, MVT::i32, 0, 
/* 76624*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76627*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBS32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (ld:{ *:[v4i32] } anonymous_7319:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi8>> - Complexity = 13
                  // Dst: (MVE_VLDRBS32:{ *:[v4i32] } anonymous_7319:{ *:[i32] }:$addr)
/* 76637*/      /*Scope*/ 28, /*->76666*/
/* 76638*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 76640*/        OPC_CheckPredicate, 69, // Predicate_zextloadvi8
/* 76642*/        OPC_CheckType, MVT::v4i32,
/* 76644*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 76646*/        OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectTAddrModeImm7<0>:$addr #2 #3
/* 76649*/        OPC_EmitMergeInputChains1_0,
/* 76650*/        OPC_EmitInteger, MVT::i32, 0, 
/* 76653*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76656*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (ld:{ *:[v4i32] } anonymous_7319:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi8>> - Complexity = 13
                  // Dst: (MVE_VLDRBU32:{ *:[v4i32] } anonymous_7319:{ *:[i32] }:$addr)
/* 76666*/      /*Scope*/ 28, /*->76695*/
/* 76667*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 76669*/        OPC_CheckPredicate, 70, // Predicate_extloadvi16
/* 76671*/        OPC_CheckType, MVT::v4i32,
/* 76673*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 76675*/        OPC_CheckComplexPat, /*CP*/37, /*#*/1, // SelectTAddrModeImm7<1>:$addr #2 #3
/* 76678*/        OPC_EmitMergeInputChains1_0,
/* 76679*/        OPC_EmitInteger, MVT::i32, 0, 
/* 76682*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76685*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (ld:{ *:[v4i32] } anonymous_7322:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvi16>> - Complexity = 13
                  // Dst: (MVE_VLDRHU32:{ *:[v4i32] } anonymous_7322:{ *:[i32] }:$addr)
/* 76695*/      /*Scope*/ 28, /*->76724*/
/* 76696*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 76698*/        OPC_CheckPredicate, 70, // Predicate_sextloadvi16
/* 76700*/        OPC_CheckType, MVT::v4i32,
/* 76702*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 76704*/        OPC_CheckComplexPat, /*CP*/37, /*#*/1, // SelectTAddrModeImm7<1>:$addr #2 #3
/* 76707*/        OPC_EmitMergeInputChains1_0,
/* 76708*/        OPC_EmitInteger, MVT::i32, 0, 
/* 76711*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76714*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHS32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (ld:{ *:[v4i32] } anonymous_7322:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadvi16>> - Complexity = 13
                  // Dst: (MVE_VLDRHS32:{ *:[v4i32] } anonymous_7322:{ *:[i32] }:$addr)
/* 76724*/      /*Scope*/ 28, /*->76753*/
/* 76725*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 76727*/        OPC_CheckPredicate, 70, // Predicate_zextloadvi16
/* 76729*/        OPC_CheckType, MVT::v4i32,
/* 76731*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 76733*/        OPC_CheckComplexPat, /*CP*/37, /*#*/1, // SelectTAddrModeImm7<1>:$addr #2 #3
/* 76736*/        OPC_EmitMergeInputChains1_0,
/* 76737*/        OPC_EmitInteger, MVT::i32, 0, 
/* 76740*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76743*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (ld:{ *:[v4i32] } anonymous_7322:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadvi16>> - Complexity = 13
                  // Dst: (MVE_VLDRHU32:{ *:[v4i32] } anonymous_7322:{ *:[i32] }:$addr)
/* 76753*/      /*Scope*/ 14|128,1/*142*/, /*->76897*/
/* 76755*/        OPC_CheckPredicate, 60, // Predicate_load
/* 76757*/        OPC_SwitchType /*3 cases */, 44, MVT::v2i64,// ->76804
/* 76760*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 76762*/          OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #2 #3
/* 76765*/          OPC_EmitMergeInputChains1_0,
/* 76766*/          OPC_EmitInteger, MVT::i32, 0, 
/* 76769*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76772*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 76782*/          OPC_EmitInteger, MVT::i32, 0, 
/* 76785*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76788*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #9
/* 76794*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_8), 0|OPFL_Chain,
                        MVT::v2i64, 4/*#Ops*/, 6, 7, 8, 9, 
                    // Src: (ld:{ *:[v2i64] } anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (MVE_VREV64_8:{ *:[v2i64] } (MVE_VLDRBU8:{ *:[v16i8] } anonymous_7325:{ *:[i32] }:$addr))
/* 76804*/        /*SwitchType*/ 44, MVT::v4i32,// ->76850
/* 76806*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 76808*/          OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #2 #3
/* 76811*/          OPC_EmitMergeInputChains1_0,
/* 76812*/          OPC_EmitInteger, MVT::i32, 0, 
/* 76815*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76818*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 76828*/          OPC_EmitInteger, MVT::i32, 0, 
/* 76831*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76834*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #9
/* 76840*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_8), 0|OPFL_Chain,
                        MVT::v4i32, 4/*#Ops*/, 6, 7, 8, 9, 
                    // Src: (ld:{ *:[v4i32] } anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (MVE_VREV32_8:{ *:[v4i32] } (MVE_VLDRBU8:{ *:[v16i8] } anonymous_7325:{ *:[i32] }:$addr))
/* 76850*/        /*SwitchType*/ 44, MVT::v8i16,// ->76896
/* 76852*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 76854*/          OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #2 #3
/* 76857*/          OPC_EmitMergeInputChains1_0,
/* 76858*/          OPC_EmitInteger, MVT::i32, 0, 
/* 76861*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76864*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 76874*/          OPC_EmitInteger, MVT::i32, 0, 
/* 76877*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76880*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #9
/* 76886*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV16_8), 0|OPFL_Chain,
                        MVT::v8i16, 4/*#Ops*/, 6, 7, 8, 9, 
                    // Src: (ld:{ *:[v8i16] } anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (MVE_VREV16_8:{ *:[v8i16] } (MVE_VLDRBU8:{ *:[v16i8] } anonymous_7325:{ *:[i32] }:$addr))
/* 76896*/        0, // EndSwitchType
/* 76897*/      /*Scope*/ 65, /*->76963*/
/* 76898*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 76900*/        OPC_CheckPredicate, 69, // Predicate_extloadvi8
/* 76902*/        OPC_CheckType, MVT::v4i16,
/* 76904*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 76906*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 76909*/        OPC_EmitMergeInputChains1_0,
/* 76910*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 76916*/        OPC_EmitInteger, MVT::i32, 0, 
/* 76919*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76922*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76925*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 76937*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76940*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76943*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 76952*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 76955*/        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] })
/* 76963*/      /*Scope*/ 65, /*->77029*/
/* 76964*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 76966*/        OPC_CheckPredicate, 69, // Predicate_zextloadvi8
/* 76968*/        OPC_CheckType, MVT::v4i16,
/* 76970*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 76972*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 76975*/        OPC_EmitMergeInputChains1_0,
/* 76976*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 76982*/        OPC_EmitInteger, MVT::i32, 0, 
/* 76985*/        OPC_EmitInteger, MVT::i32, 14, 
/* 76988*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 76991*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 77003*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77006*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77009*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 77018*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 77021*/        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] })
/* 77029*/      /*Scope*/ 65, /*->77095*/
/* 77030*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 77032*/        OPC_CheckPredicate, 69, // Predicate_sextloadvi8
/* 77034*/        OPC_CheckType, MVT::v4i16,
/* 77036*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 77038*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77041*/        OPC_EmitMergeInputChains1_0,
/* 77042*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 77048*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77051*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77054*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77057*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 77069*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77072*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77075*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 77084*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 77087*/        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] })
/* 77095*/      /*Scope*/ 65, /*->77161*/
/* 77096*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 77098*/        OPC_CheckPredicate, 70, // Predicate_extloadvi16
/* 77100*/        OPC_CheckType, MVT::v2i32,
/* 77102*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 77104*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77107*/        OPC_EmitMergeInputChains1_0,
/* 77108*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 77114*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77117*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77120*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77123*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 77135*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77138*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77141*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 77150*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 77153*/        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] })
/* 77161*/      /*Scope*/ 65, /*->77227*/
/* 77162*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 77164*/        OPC_CheckPredicate, 70, // Predicate_zextloadvi16
/* 77166*/        OPC_CheckType, MVT::v2i32,
/* 77168*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 77170*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77173*/        OPC_EmitMergeInputChains1_0,
/* 77174*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 77180*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77183*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77186*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77189*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 77201*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77204*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77207*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 77216*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 77219*/        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] })
/* 77227*/      /*Scope*/ 65, /*->77293*/
/* 77228*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 77230*/        OPC_CheckPredicate, 70, // Predicate_sextloadvi16
/* 77232*/        OPC_CheckType, MVT::v2i32,
/* 77234*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 77236*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77239*/        OPC_EmitMergeInputChains1_0,
/* 77240*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 77246*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77249*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77252*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77255*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 77267*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77270*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77273*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 77282*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 77285*/        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] })
/* 77293*/      /*Scope*/ 83, /*->77377*/
/* 77294*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 77296*/        OPC_CheckPredicate, 69, // Predicate_extloadvi8
/* 77298*/        OPC_CheckType, MVT::v4i32,
/* 77300*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 77302*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77305*/        OPC_EmitMergeInputChains1_0,
/* 77306*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 77312*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77315*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77318*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77321*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 77333*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77336*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77339*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 77348*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 77351*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 77359*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77362*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77365*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 77374*/        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] }))
/* 77377*/      /*Scope*/ 83, /*->77461*/
/* 77378*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 77380*/        OPC_CheckPredicate, 69, // Predicate_zextloadvi8
/* 77382*/        OPC_CheckType, MVT::v4i32,
/* 77384*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 77386*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77389*/        OPC_EmitMergeInputChains1_0,
/* 77390*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 77396*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77399*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77402*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77405*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 77417*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77420*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77423*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 77432*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 77435*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 77443*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77446*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77449*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 77458*/        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] }))
/* 77461*/      /*Scope*/ 83, /*->77545*/
/* 77462*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 77464*/        OPC_CheckPredicate, 69, // Predicate_sextloadvi8
/* 77466*/        OPC_CheckType, MVT::v4i32,
/* 77468*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 77470*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77473*/        OPC_EmitMergeInputChains1_0,
/* 77474*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 77480*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77483*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77486*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77489*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 77501*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77504*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77507*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 77516*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 77519*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 77527*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77530*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77533*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 77542*/        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] }))
/* 77545*/      /*Scope*/ 83, /*->77629*/
/* 77546*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 77548*/        OPC_CheckPredicate, 70, // Predicate_extloadvi16
/* 77550*/        OPC_CheckType, MVT::v2i64,
/* 77552*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 77554*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77557*/        OPC_EmitMergeInputChains1_0,
/* 77558*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 77564*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77567*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77570*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77573*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 77585*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77588*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77591*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 77600*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 77603*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 77611*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77614*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77617*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 77626*/        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] }))
/* 77629*/      /*Scope*/ 83, /*->77713*/
/* 77630*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 77632*/        OPC_CheckPredicate, 70, // Predicate_zextloadvi16
/* 77634*/        OPC_CheckType, MVT::v2i64,
/* 77636*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 77638*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77641*/        OPC_EmitMergeInputChains1_0,
/* 77642*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 77648*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77651*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77654*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77657*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 77669*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77672*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77675*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 77684*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 77687*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 77695*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77698*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77701*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 77710*/        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] }))
/* 77713*/      /*Scope*/ 83, /*->77797*/
/* 77714*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 77716*/        OPC_CheckPredicate, 70, // Predicate_sextloadvi16
/* 77718*/        OPC_CheckType, MVT::v2i64,
/* 77720*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 77722*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77725*/        OPC_EmitMergeInputChains1_0,
/* 77726*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 77732*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77735*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77738*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77741*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 77753*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77756*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77759*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 77768*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 77771*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 77779*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77782*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77785*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 77794*/        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] }))
/* 77797*/      /*Scope*/ 80, /*->77878*/
/* 77798*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 77800*/        OPC_CheckPredicate, 69, // Predicate_extloadvi8
/* 77802*/        OPC_CheckType, MVT::v4i16,
/* 77804*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 77806*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77809*/        OPC_EmitMergeInputChains1_0,
/* 77810*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 77816*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77819*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77822*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77825*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 77837*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77840*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77843*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 77852*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77855*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77858*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 77867*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 77870*/        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] })
/* 77878*/      /*Scope*/ 80, /*->77959*/
/* 77879*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 77881*/        OPC_CheckPredicate, 69, // Predicate_zextloadvi8
/* 77883*/        OPC_CheckType, MVT::v4i16,
/* 77885*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 77887*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77890*/        OPC_EmitMergeInputChains1_0,
/* 77891*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 77897*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77900*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77903*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77906*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 77918*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77921*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77924*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 77933*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77936*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77939*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 77948*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 77951*/        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] })
/* 77959*/      /*Scope*/ 80, /*->78040*/
/* 77960*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 77962*/        OPC_CheckPredicate, 69, // Predicate_sextloadvi8
/* 77964*/        OPC_CheckType, MVT::v4i16,
/* 77966*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 77968*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 77971*/        OPC_EmitMergeInputChains1_0,
/* 77972*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 77978*/        OPC_EmitInteger, MVT::i32, 0, 
/* 77981*/        OPC_EmitInteger, MVT::i32, 14, 
/* 77984*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 77987*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 77999*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78002*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78005*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 78014*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78017*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78020*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 78029*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 78032*/        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] })
/* 78040*/      /*Scope*/ 80, /*->78121*/
/* 78041*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 78043*/        OPC_CheckPredicate, 70, // Predicate_extloadvi16
/* 78045*/        OPC_CheckType, MVT::v2i32,
/* 78047*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 78049*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 78052*/        OPC_EmitMergeInputChains1_0,
/* 78053*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 78059*/        OPC_EmitInteger, MVT::i32, 0, 
/* 78062*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78065*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78068*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 78080*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78083*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78086*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d16), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 78095*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78098*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78101*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 78110*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 78113*/        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] })
/* 78121*/      /*Scope*/ 80, /*->78202*/
/* 78122*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 78124*/        OPC_CheckPredicate, 70, // Predicate_zextloadvi16
/* 78126*/        OPC_CheckType, MVT::v2i32,
/* 78128*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 78130*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 78133*/        OPC_EmitMergeInputChains1_0,
/* 78134*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 78140*/        OPC_EmitInteger, MVT::i32, 0, 
/* 78143*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78146*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78149*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 78161*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78164*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78167*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d16), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 78176*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78179*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78182*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 78191*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 78194*/        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] })
/* 78202*/      /*Scope*/ 80, /*->78283*/
/* 78203*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 78205*/        OPC_CheckPredicate, 70, // Predicate_sextloadvi16
/* 78207*/        OPC_CheckType, MVT::v2i32,
/* 78209*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 78211*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 78214*/        OPC_EmitMergeInputChains1_0,
/* 78215*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 78221*/        OPC_EmitInteger, MVT::i32, 0, 
/* 78224*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78227*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78230*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 78242*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78245*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78248*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d16), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 78257*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78260*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78263*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 78272*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 78275*/        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] })
/* 78283*/      /*Scope*/ 91, /*->78375*/
/* 78284*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 78286*/        OPC_CheckPredicate, 69, // Predicate_extloadvi8
/* 78288*/        OPC_CheckType, MVT::v2i32,
/* 78290*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 78292*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 78295*/        OPC_EmitMergeInputChains1_0,
/* 78296*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 78302*/        OPC_EmitInteger, MVT::i32, 0, 
/* 78305*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78308*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78311*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 78323*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78326*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78329*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 78338*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 78341*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 78349*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78352*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78355*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 78364*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 78367*/        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] })
/* 78375*/      /*Scope*/ 91, /*->78467*/
/* 78376*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 78378*/        OPC_CheckPredicate, 69, // Predicate_zextloadvi8
/* 78380*/        OPC_CheckType, MVT::v2i32,
/* 78382*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 78384*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 78387*/        OPC_EmitMergeInputChains1_0,
/* 78388*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 78394*/        OPC_EmitInteger, MVT::i32, 0, 
/* 78397*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78400*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78403*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 78415*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78418*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78421*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 78430*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 78433*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 78441*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78444*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78447*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 78456*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 78459*/        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] })
/* 78467*/      /*Scope*/ 91, /*->78559*/
/* 78468*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 78470*/        OPC_CheckPredicate, 69, // Predicate_sextloadvi8
/* 78472*/        OPC_CheckType, MVT::v2i32,
/* 78474*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 78476*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 78479*/        OPC_EmitMergeInputChains1_0,
/* 78480*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 78486*/        OPC_EmitInteger, MVT::i32, 0, 
/* 78489*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78492*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78495*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 78507*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78510*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78513*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 78522*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 78525*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 78533*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78536*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78539*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 78548*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 78551*/        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] })
/* 78559*/      /*Scope*/ 98, /*->78658*/
/* 78560*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 78562*/        OPC_CheckPredicate, 69, // Predicate_extloadvi8
/* 78564*/        OPC_CheckType, MVT::v4i32,
/* 78566*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 78568*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 78571*/        OPC_EmitMergeInputChains1_0,
/* 78572*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 78578*/        OPC_EmitInteger, MVT::i32, 0, 
/* 78581*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78584*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78587*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 78599*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78602*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78605*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 78614*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78617*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78620*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 78629*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 78632*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 78640*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78643*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78646*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 78655*/        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] }))
/* 78658*/      /*Scope*/ 98, /*->78757*/
/* 78659*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 78661*/        OPC_CheckPredicate, 69, // Predicate_zextloadvi8
/* 78663*/        OPC_CheckType, MVT::v4i32,
/* 78665*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 78667*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 78670*/        OPC_EmitMergeInputChains1_0,
/* 78671*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 78677*/        OPC_EmitInteger, MVT::i32, 0, 
/* 78680*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78683*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78686*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 78698*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78701*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78704*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 78713*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78716*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78719*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 78728*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 78731*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 78739*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78742*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78745*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 78754*/        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] }))
/* 78757*/      /*Scope*/ 98, /*->78856*/
/* 78758*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 78760*/        OPC_CheckPredicate, 69, // Predicate_sextloadvi8
/* 78762*/        OPC_CheckType, MVT::v4i32,
/* 78764*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 78766*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 78769*/        OPC_EmitMergeInputChains1_0,
/* 78770*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 78776*/        OPC_EmitInteger, MVT::i32, 0, 
/* 78779*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78782*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78785*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 78797*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78800*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78803*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 78812*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78815*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78818*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 78827*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 78830*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 78838*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78841*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78844*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 78853*/        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] }))
/* 78856*/      /*Scope*/ 98, /*->78955*/
/* 78857*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 78859*/        OPC_CheckPredicate, 70, // Predicate_extloadvi16
/* 78861*/        OPC_CheckType, MVT::v2i64,
/* 78863*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 78865*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 78868*/        OPC_EmitMergeInputChains1_0,
/* 78869*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 78875*/        OPC_EmitInteger, MVT::i32, 0, 
/* 78878*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78881*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78884*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 78896*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78899*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78902*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d16), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 78911*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78914*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78917*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 78926*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 78929*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 78937*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78940*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78943*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 78952*/        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] }))
/* 78955*/      /*Scope*/ 98, /*->79054*/
/* 78956*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 78958*/        OPC_CheckPredicate, 70, // Predicate_zextloadvi16
/* 78960*/        OPC_CheckType, MVT::v2i64,
/* 78962*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 78964*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 78967*/        OPC_EmitMergeInputChains1_0,
/* 78968*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 78974*/        OPC_EmitInteger, MVT::i32, 0, 
/* 78977*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78980*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 78983*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 78995*/        OPC_EmitInteger, MVT::i32, 14, 
/* 78998*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79001*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d16), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 79010*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79013*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79016*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 79025*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79028*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 79036*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79039*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79042*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 79051*/        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] }))
/* 79054*/      /*Scope*/ 98, /*->79153*/
/* 79055*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 79057*/        OPC_CheckPredicate, 70, // Predicate_sextloadvi16
/* 79059*/        OPC_CheckType, MVT::v2i64,
/* 79061*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 79063*/        OPC_CheckComplexPat, /*CP*/14, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 79066*/        OPC_EmitMergeInputChains1_0,
/* 79067*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 79073*/        OPC_EmitInteger, MVT::i32, 0, 
/* 79076*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79079*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79082*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 79094*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79097*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79100*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV32d16), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 79109*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79112*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79115*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 79124*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79127*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 79135*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79138*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79141*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 79150*/        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] }))
/* 79153*/      /*Scope*/ 106, /*->79260*/
/* 79154*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 79156*/        OPC_CheckPredicate, 69, // Predicate_extloadvi8
/* 79158*/        OPC_CheckType, MVT::v2i32,
/* 79160*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 79162*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 79165*/        OPC_EmitMergeInputChains1_0,
/* 79166*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 79172*/        OPC_EmitInteger, MVT::i32, 0, 
/* 79175*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79178*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79181*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 79193*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79196*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79199*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV16d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 79208*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79211*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79214*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 79223*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79226*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 79234*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79237*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79240*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 79249*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79252*/        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] })
/* 79260*/      /*Scope*/ 106, /*->79367*/
/* 79261*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 79263*/        OPC_CheckPredicate, 69, // Predicate_zextloadvi8
/* 79265*/        OPC_CheckType, MVT::v2i32,
/* 79267*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 79269*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 79272*/        OPC_EmitMergeInputChains1_0,
/* 79273*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 79279*/        OPC_EmitInteger, MVT::i32, 0, 
/* 79282*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79285*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79288*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 79300*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79303*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79306*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV16d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 79315*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79318*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79321*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 79330*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79333*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 79341*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79344*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79347*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 79356*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79359*/        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] })
/* 79367*/      /*Scope*/ 106, /*->79474*/
/* 79368*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 79370*/        OPC_CheckPredicate, 69, // Predicate_sextloadvi8
/* 79372*/        OPC_CheckType, MVT::v2i32,
/* 79374*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 79376*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 79379*/        OPC_EmitMergeInputChains1_0,
/* 79380*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 79386*/        OPC_EmitInteger, MVT::i32, 0, 
/* 79389*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79392*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79395*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 79407*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79410*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79413*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV16d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 79422*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79425*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79428*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 79437*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79440*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 79448*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79451*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79454*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 79463*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79466*/        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] })
/* 79474*/      /*Scope*/ 109, /*->79584*/
/* 79475*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 79477*/        OPC_CheckPredicate, 69, // Predicate_extloadvi8
/* 79479*/        OPC_CheckType, MVT::v2i64,
/* 79481*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 79483*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 79486*/        OPC_EmitMergeInputChains1_0,
/* 79487*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 79493*/        OPC_EmitInteger, MVT::i32, 0, 
/* 79496*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79499*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79502*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 79514*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79517*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79520*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 79529*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79532*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 79540*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79543*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79546*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 79555*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79558*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 16, 17,  // Results = #18
/* 79566*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79569*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79572*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 18, 19, 20,  // Results = #21
/* 79581*/        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] }))
/* 79584*/      /*Scope*/ 109, /*->79694*/
/* 79585*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 79587*/        OPC_CheckPredicate, 69, // Predicate_zextloadvi8
/* 79589*/        OPC_CheckType, MVT::v2i64,
/* 79591*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 79593*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 79596*/        OPC_EmitMergeInputChains1_0,
/* 79597*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 79603*/        OPC_EmitInteger, MVT::i32, 0, 
/* 79606*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79609*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79612*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 79624*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79627*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79630*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 79639*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79642*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 79650*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79653*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79656*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 79665*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79668*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 16, 17,  // Results = #18
/* 79676*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79679*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79682*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 18, 19, 20,  // Results = #21
/* 79691*/        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] }))
/* 79694*/      /*Scope*/ 109, /*->79804*/
/* 79695*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 79697*/        OPC_CheckPredicate, 69, // Predicate_sextloadvi8
/* 79699*/        OPC_CheckType, MVT::v2i64,
/* 79701*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 79703*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 79706*/        OPC_EmitMergeInputChains1_0,
/* 79707*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 79713*/        OPC_EmitInteger, MVT::i32, 0, 
/* 79716*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79719*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79722*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 79734*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79737*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79740*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 79749*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79752*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 11, 12,  // Results = #13
/* 79760*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79763*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79766*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 13, 14, 15,  // Results = #16
/* 79775*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79778*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 16, 17,  // Results = #18
/* 79786*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79789*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79792*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 18, 19, 20,  // Results = #21
/* 79801*/        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] }))
/* 79804*/      /*Scope*/ 124, /*->79929*/
/* 79805*/        OPC_CheckPredicate, 38, // Predicate_extload
/* 79807*/        OPC_CheckPredicate, 69, // Predicate_extloadvi8
/* 79809*/        OPC_CheckType, MVT::v2i64,
/* 79811*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 79813*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 79816*/        OPC_EmitMergeInputChains1_0,
/* 79817*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 79823*/        OPC_EmitInteger, MVT::i32, 0, 
/* 79826*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79829*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79832*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 79844*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79847*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79850*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV16d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 79859*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79862*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79865*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 79874*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79877*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 79885*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79888*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79891*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 79900*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 79903*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 19, 20,  // Results = #21
/* 79911*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79914*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79917*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 21, 22, 23,  // Results = #24
/* 79926*/        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] }))
/* 79929*/      /*Scope*/ 124, /*->80054*/
/* 79930*/        OPC_CheckPredicate, 61, // Predicate_zextload
/* 79932*/        OPC_CheckPredicate, 69, // Predicate_zextloadvi8
/* 79934*/        OPC_CheckType, MVT::v2i64,
/* 79936*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 79938*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 79941*/        OPC_EmitMergeInputChains1_0,
/* 79942*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 79948*/        OPC_EmitInteger, MVT::i32, 0, 
/* 79951*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79954*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79957*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 79969*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79972*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79975*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV16d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 79984*/        OPC_EmitInteger, MVT::i32, 14, 
/* 79987*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 79990*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 79999*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 80002*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 80010*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80013*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80016*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 80025*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 80028*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 19, 20,  // Results = #21
/* 80036*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80039*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80042*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLuv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 21, 22, 23,  // Results = #24
/* 80051*/        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] }))
/* 80054*/      /*Scope*/ 124, /*->80179*/
/* 80055*/        OPC_CheckPredicate, 62, // Predicate_sextload
/* 80057*/        OPC_CheckPredicate, 69, // Predicate_sextloadvi8
/* 80059*/        OPC_CheckType, MVT::v2i64,
/* 80061*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 80063*/        OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 80066*/        OPC_EmitMergeInputChains1_0,
/* 80067*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #4
/* 80073*/        OPC_EmitInteger, MVT::i32, 0, 
/* 80076*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80079*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80082*/        OPC_EmitNode1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7,  // Results = #8
/* 80094*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80097*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80100*/        OPC_EmitNode1, TARGET_VAL(ARM::VREV16d8), 0,
                      MVT::f64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 80109*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80112*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80115*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv8i16), 0,
                      MVT::v16i8, 3/*#Ops*/, 11, 12, 13,  // Results = #14
/* 80124*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 80127*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 14, 15,  // Results = #16
/* 80135*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80138*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80141*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv4i32), 0,
                      MVT::v16i8, 3/*#Ops*/, 16, 17, 18,  // Results = #19
/* 80150*/        OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/* 80153*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 19, 20,  // Results = #21
/* 80161*/        OPC_EmitInteger, MVT::i32, 14, 
/* 80164*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80167*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVLsv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 21, 22, 23,  // Results = #24
/* 80176*/        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] }))
/* 80179*/      /*Scope*/ 11|128,5/*651*/, /*->80832*/
/* 80181*/        OPC_CheckPredicate, 60, // Predicate_load
/* 80183*/        OPC_Scope, 26, /*->80211*/ // 13 children in Scope
/* 80185*/          OPC_CheckPredicate, 72, // Predicate_dword_alignedload
/* 80187*/          OPC_CheckType, MVT::v2f64,
/* 80189*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 80191*/          OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 80194*/          OPC_EmitMergeInputChains1_0,
/* 80195*/          OPC_EmitInteger, MVT::i32, 14, 
/* 80198*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80201*/          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)
/* 80211*/        /*Scope*/ 26, /*->80238*/
/* 80212*/          OPC_CheckPredicate, 73, // Predicate_word_alignedload
/* 80214*/          OPC_CheckType, MVT::v2f64,
/* 80216*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 80218*/          OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 80221*/          OPC_EmitMergeInputChains1_0,
/* 80222*/          OPC_EmitInteger, MVT::i32, 14, 
/* 80225*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80228*/          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)
/* 80238*/        /*Scope*/ 26, /*->80265*/
/* 80239*/          OPC_CheckPredicate, 66, // Predicate_hword_alignedload
/* 80241*/          OPC_CheckType, MVT::v2f64,
/* 80243*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 80245*/          OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 80248*/          OPC_EmitMergeInputChains1_0,
/* 80249*/          OPC_EmitInteger, MVT::i32, 14, 
/* 80252*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80255*/          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)
/* 80265*/        /*Scope*/ 102, /*->80368*/
/* 80266*/          OPC_CheckPredicate, 67, // Predicate_byte_alignedload
/* 80268*/          OPC_SwitchType /*3 cases */, 48, MVT::v2f64,// ->80319
/* 80271*/            OPC_Scope, 22, /*->80295*/ // 2 children in Scope
/* 80273*/              OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/* 80275*/              OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 80278*/              OPC_EmitMergeInputChains1_0,
/* 80279*/              OPC_EmitInteger, MVT::i32, 14, 
/* 80282*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80285*/              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)
/* 80295*/            /*Scope*/ 22, /*->80318*/
/* 80296*/              OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 80298*/              OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #2 #3
/* 80301*/              OPC_EmitMergeInputChains1_0,
/* 80302*/              OPC_EmitInteger, MVT::i32, 0, 
/* 80305*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80308*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 4/*#Ops*/, 2, 3, 4, 5, 
                        // Src: (ld:{ *:[v2f64] } anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_byte_alignedload>> - Complexity = 13
                        // Dst: (MVE_VLDRBU8:{ *:[v2f64] } anonymous_7325:{ *:[i32] }:$addr)
/* 80318*/            0, /*End of Scope*/
/* 80319*/          /*SwitchType*/ 22, MVT::v8f16,// ->80343
/* 80321*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 80323*/            OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #2 #3
/* 80326*/            OPC_EmitMergeInputChains1_0,
/* 80327*/            OPC_EmitInteger, MVT::i32, 0, 
/* 80330*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80333*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f16, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v8f16] } anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_byte_alignedload>> - Complexity = 13
                      // Dst: (MVE_VLDRBU8:{ *:[v8f16] } anonymous_7325:{ *:[i32] }:$addr)
/* 80343*/          /*SwitchType*/ 22, MVT::v4f32,// ->80367
/* 80345*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 80347*/            OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #2 #3
/* 80350*/            OPC_EmitMergeInputChains1_0,
/* 80351*/            OPC_EmitInteger, MVT::i32, 0, 
/* 80354*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80357*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v4f32] } anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_byte_alignedload>> - Complexity = 13
                      // Dst: (MVE_VLDRBU8:{ *:[v4f32] } anonymous_7325:{ *:[i32] }:$addr)
/* 80367*/          0, // EndSwitchType
/* 80368*/        /*Scope*/ 76, /*->80445*/
/* 80369*/          OPC_CheckPredicate, 66, // Predicate_hword_alignedload
/* 80371*/          OPC_SwitchType /*3 cases */, 22, MVT::v8f16,// ->80396
/* 80374*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 80376*/            OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectT2AddrModeImm7<1>:$addr #2 #3
/* 80379*/            OPC_EmitMergeInputChains1_0,
/* 80380*/            OPC_EmitInteger, MVT::i32, 0, 
/* 80383*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80386*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f16, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v8f16] } anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_hword_alignedload>> - Complexity = 13
                      // Dst: (MVE_VLDRHU16:{ *:[v8f16] } anonymous_7327:{ *:[i32] }:$addr)
/* 80396*/          /*SwitchType*/ 22, MVT::v4f32,// ->80420
/* 80398*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 80400*/            OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectT2AddrModeImm7<1>:$addr #2 #3
/* 80403*/            OPC_EmitMergeInputChains1_0,
/* 80404*/            OPC_EmitInteger, MVT::i32, 0, 
/* 80407*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80410*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v4f32] } anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_hword_alignedload>> - Complexity = 13
                      // Dst: (MVE_VLDRHU16:{ *:[v4f32] } anonymous_7327:{ *:[i32] }:$addr)
/* 80420*/          /*SwitchType*/ 22, MVT::v2f64,// ->80444
/* 80422*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 80424*/            OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectT2AddrModeImm7<1>:$addr #2 #3
/* 80427*/            OPC_EmitMergeInputChains1_0,
/* 80428*/            OPC_EmitInteger, MVT::i32, 0, 
/* 80431*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80434*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v2f64] } anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_hword_alignedload>> - Complexity = 13
                      // Dst: (MVE_VLDRHU16:{ *:[v2f64] } anonymous_7327:{ *:[i32] }:$addr)
/* 80444*/          0, // EndSwitchType
/* 80445*/        /*Scope*/ 76, /*->80522*/
/* 80446*/          OPC_CheckPredicate, 64, // Predicate_alignedload32
/* 80448*/          OPC_SwitchType /*3 cases */, 22, MVT::v8f16,// ->80473
/* 80451*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 80453*/            OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectT2AddrModeImm7<2>:$addr #2 #3
/* 80456*/            OPC_EmitMergeInputChains1_0,
/* 80457*/            OPC_EmitInteger, MVT::i32, 0, 
/* 80460*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80463*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f16, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v8f16] } anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>> - Complexity = 13
                      // Dst: (MVE_VLDRWU32:{ *:[v8f16] } anonymous_7329:{ *:[i32] }:$addr)
/* 80473*/          /*SwitchType*/ 22, MVT::v4f32,// ->80497
/* 80475*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 80477*/            OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectT2AddrModeImm7<2>:$addr #2 #3
/* 80480*/            OPC_EmitMergeInputChains1_0,
/* 80481*/            OPC_EmitInteger, MVT::i32, 0, 
/* 80484*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80487*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v4f32] } anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>> - Complexity = 13
                      // Dst: (MVE_VLDRWU32:{ *:[v4f32] } anonymous_7329:{ *:[i32] }:$addr)
/* 80497*/          /*SwitchType*/ 22, MVT::v2f64,// ->80521
/* 80499*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/* 80501*/            OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectT2AddrModeImm7<2>:$addr #2 #3
/* 80504*/            OPC_EmitMergeInputChains1_0,
/* 80505*/            OPC_EmitInteger, MVT::i32, 0, 
/* 80508*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80511*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ld:{ *:[v2f64] } anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>> - Complexity = 13
                      // Dst: (MVE_VLDRWU32:{ *:[v2f64] } anonymous_7329:{ *:[i32] }:$addr)
/* 80521*/          0, // EndSwitchType
/* 80522*/        /*Scope*/ 26, /*->80549*/
/* 80523*/          OPC_CheckPredicate, 65, // Predicate_alignedload16
/* 80525*/          OPC_CheckType, MVT::v8f16,
/* 80527*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 80529*/          OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectT2AddrModeImm7<1>:$addr #2 #3
/* 80532*/          OPC_EmitMergeInputChains1_0,
/* 80533*/          OPC_EmitInteger, MVT::i32, 0, 
/* 80536*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80539*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f16, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v8f16] } anonymous_7327:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload16>> - Complexity = 13
                    // Dst: (MVE_VLDRHU16:{ *:[v8f16] } anonymous_7327:{ *:[i32] }:$addr)
/* 80549*/        /*Scope*/ 26, /*->80576*/
/* 80550*/          OPC_CheckPredicate, 64, // Predicate_alignedload32
/* 80552*/          OPC_CheckType, MVT::v4f32,
/* 80554*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 80556*/          OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectT2AddrModeImm7<2>:$addr #2 #3
/* 80559*/          OPC_EmitMergeInputChains1_0,
/* 80560*/          OPC_EmitInteger, MVT::i32, 0, 
/* 80563*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80566*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ld:{ *:[v4f32] } anonymous_7329:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload32>> - Complexity = 13
                    // Dst: (MVE_VLDRWU32:{ *:[v4f32] } anonymous_7329:{ *:[i32] }:$addr)
/* 80576*/        /*Scope*/ 44, /*->80621*/
/* 80577*/          OPC_CheckPredicate, 67, // Predicate_byte_alignedload
/* 80579*/          OPC_CheckType, MVT::v2f64,
/* 80581*/          OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 80583*/          OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 80586*/          OPC_EmitMergeInputChains1_0,
/* 80587*/          OPC_EmitInteger, MVT::i32, 14, 
/* 80590*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80593*/          OPC_EmitNode1, TARGET_VAL(ARM::VLD1q8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 80603*/          OPC_EmitInteger, MVT::i32, 14, 
/* 80606*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80609*/          OPC_EmitNode1, TARGET_VAL(ARM::VREV64q8), 0,
                        MVT::v2f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 80618*/          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))
/* 80621*/        /*Scope*/ 44, /*->80666*/
/* 80622*/          OPC_CheckPredicate, 66, // Predicate_hword_alignedload
/* 80624*/          OPC_CheckType, MVT::v2f64,
/* 80626*/          OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/* 80628*/          OPC_CheckComplexPat, /*CP*/12, /*#*/1, // SelectAddrMode6:$addr #2 #3
/* 80631*/          OPC_EmitMergeInputChains1_0,
/* 80632*/          OPC_EmitInteger, MVT::i32, 14, 
/* 80635*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80638*/          OPC_EmitNode1, TARGET_VAL(ARM::VLD1q16), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 80648*/          OPC_EmitInteger, MVT::i32, 14, 
/* 80651*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80654*/          OPC_EmitNode1, TARGET_VAL(ARM::VREV64q16), 0,
                        MVT::v2f64, 3/*#Ops*/, 6, 7, 8,  // Results = #9
/* 80663*/          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))
/* 80666*/        /*Scope*/ 70, /*->80737*/
/* 80667*/          OPC_CheckType, MVT::v2f64,
/* 80669*/          OPC_Scope, 44, /*->80715*/ // 2 children in Scope
/* 80671*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 80673*/            OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #2 #3
/* 80676*/            OPC_EmitMergeInputChains1_0,
/* 80677*/            OPC_EmitInteger, MVT::i32, 0, 
/* 80680*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80683*/            OPC_EmitNode1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 80693*/            OPC_EmitInteger, MVT::i32, 0, 
/* 80696*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80699*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #9
/* 80705*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_8), 0|OPFL_Chain,
                          MVT::v2f64, 4/*#Ops*/, 6, 7, 8, 9, 
                      // Src: (ld:{ *:[v2f64] } anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                      // Dst: (MVE_VREV64_8:{ *:[v2f64] } (MVE_VLDRBU8:{ *:[v16i8] } anonymous_7325:{ *:[i32] }:$addr))
/* 80715*/          /*Scope*/ 20, /*->80736*/
/* 80716*/            OPC_CheckPredicate, 73, // Predicate_word_alignedload
/* 80718*/            OPC_CheckPatternPredicate, 42, // (Subtarget->hasVFP2Base())
/* 80720*/            OPC_EmitMergeInputChains1_0,
/* 80721*/            OPC_EmitInteger, MVT::i32, 14, 
/* 80724*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80727*/            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)
/* 80736*/          0, /*End of Scope*/
/* 80737*/        /*Scope*/ 46, /*->80784*/
/* 80738*/          OPC_CheckType, MVT::v4f32,
/* 80740*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 80742*/          OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #2 #3
/* 80745*/          OPC_EmitMergeInputChains1_0,
/* 80746*/          OPC_EmitInteger, MVT::i32, 0, 
/* 80749*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80752*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 80762*/          OPC_EmitInteger, MVT::i32, 0, 
/* 80765*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80768*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #9
/* 80774*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_8), 0|OPFL_Chain,
                        MVT::v4f32, 4/*#Ops*/, 6, 7, 8, 9, 
                    // Src: (ld:{ *:[v4f32] } anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (MVE_VREV32_8:{ *:[v4f32] } (MVE_VLDRBU8:{ *:[v16i8] } anonymous_7325:{ *:[i32] }:$addr))
/* 80784*/        /*Scope*/ 46, /*->80831*/
/* 80785*/          OPC_CheckType, MVT::v8f16,
/* 80787*/          OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/* 80789*/          OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #2 #3
/* 80792*/          OPC_EmitMergeInputChains1_0,
/* 80793*/          OPC_EmitInteger, MVT::i32, 0, 
/* 80796*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80799*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/* 80809*/          OPC_EmitInteger, MVT::i32, 0, 
/* 80812*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80815*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #9
/* 80821*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV16_8), 0|OPFL_Chain,
                        MVT::v8f16, 4/*#Ops*/, 6, 7, 8, 9, 
                    // Src: (ld:{ *:[v8f16] } anonymous_7325:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
                    // Dst: (MVE_VREV16_8:{ *:[v8f16] } (MVE_VLDRBU8:{ *:[v16i8] } anonymous_7325:{ *:[i32] }:$addr))
/* 80831*/        0, /*End of Scope*/
/* 80832*/      0, /*End of Scope*/
/* 80833*/    0, /*End of Scope*/
/* 80834*/  /*SwitchOpcode*/ 122|128,29/*3834*/, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),// ->84672
/* 80838*/    OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/* 80839*/    OPC_Scope, 47|128,2/*303*/, /*->81145*/ // 27 children in Scope
/* 80842*/      OPC_CheckChild1Integer, 41|128,14/*1833*/, 
/* 80845*/      OPC_Scope, 9|128,1/*137*/, /*->80985*/ // 2 children in Scope
/* 80848*/        OPC_MoveChild2,
/* 80849*/        OPC_Scope, 32, /*->80883*/ // 4 children in Scope
/* 80851*/          OPC_CheckAndImm, 127|128,1/*255*/, 
/* 80854*/          OPC_RecordChild0, // #1 = $Rt
/* 80855*/          OPC_MoveParent,
/* 80856*/          OPC_RecordChild3, // #2 = $addr
/* 80857*/          OPC_CheckChild3Type, MVT::i32,
/* 80859*/          OPC_CheckPredicate, 24, // Predicate_strex_1
/* 80861*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 80863*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 80866*/          OPC_EmitMergeInputChains1_0,
/* 80867*/          OPC_EmitInteger, MVT::i32, 14, 
/* 80870*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80873*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STREXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1833:{ *:[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)
/* 80883*/        /*Scope*/ 33, /*->80917*/
/* 80884*/          OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 80888*/          OPC_RecordChild0, // #1 = $Rt
/* 80889*/          OPC_MoveParent,
/* 80890*/          OPC_RecordChild3, // #2 = $addr
/* 80891*/          OPC_CheckChild3Type, MVT::i32,
/* 80893*/          OPC_CheckPredicate, 25, // Predicate_strex_2
/* 80895*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 80897*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 80900*/          OPC_EmitMergeInputChains1_0,
/* 80901*/          OPC_EmitInteger, MVT::i32, 14, 
/* 80904*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80907*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STREXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1833:{ *:[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)
/* 80917*/        /*Scope*/ 32, /*->80950*/
/* 80918*/          OPC_CheckAndImm, 127|128,1/*255*/, 
/* 80921*/          OPC_RecordChild0, // #1 = $Rt
/* 80922*/          OPC_MoveParent,
/* 80923*/          OPC_RecordChild3, // #2 = $addr
/* 80924*/          OPC_CheckChild3Type, MVT::i32,
/* 80926*/          OPC_CheckPredicate, 24, // Predicate_strex_1
/* 80928*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 80930*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 80933*/          OPC_EmitMergeInputChains1_0,
/* 80934*/          OPC_EmitInteger, MVT::i32, 14, 
/* 80937*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80940*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STREXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1833:{ *:[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)
/* 80950*/        /*Scope*/ 33, /*->80984*/
/* 80951*/          OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 80955*/          OPC_RecordChild0, // #1 = $Rt
/* 80956*/          OPC_MoveParent,
/* 80957*/          OPC_RecordChild3, // #2 = $addr
/* 80958*/          OPC_CheckChild3Type, MVT::i32,
/* 80960*/          OPC_CheckPredicate, 25, // Predicate_strex_2
/* 80962*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 80964*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 80967*/          OPC_EmitMergeInputChains1_0,
/* 80968*/          OPC_EmitInteger, MVT::i32, 14, 
/* 80971*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 80974*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STREXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1833:{ *:[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)
/* 80984*/        0, /*End of Scope*/
/* 80985*/      /*Scope*/ 29|128,1/*157*/, /*->81144*/
/* 80987*/        OPC_RecordChild2, // #1 = $Rt
/* 80988*/        OPC_RecordChild3, // #2 = $addr
/* 80989*/        OPC_CheckChild3Type, MVT::i32,
/* 80991*/        OPC_Scope, 25, /*->81018*/ // 6 children in Scope
/* 80993*/          OPC_CheckPredicate, 74, // Predicate_strex_4
/* 80995*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 80997*/          OPC_CheckComplexPat, /*CP*/40, /*#*/2, // SelectT2AddrModeExclusive:$addr #3 #4
/* 81000*/          OPC_EmitMergeInputChains1_0,
/* 81001*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81004*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81007*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STREX), 0|OPFL_Chain,
                        MVT::i32, 5/*#Ops*/, 1, 3, 4, 5, 6, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1833:{ *:[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)
/* 81018*/        /*Scope*/ 24, /*->81043*/
/* 81019*/          OPC_CheckPredicate, 24, // Predicate_strex_1
/* 81021*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 81023*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81026*/          OPC_EmitMergeInputChains1_0,
/* 81027*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81030*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81033*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STREXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1833:{ *:[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)
/* 81043*/        /*Scope*/ 24, /*->81068*/
/* 81044*/          OPC_CheckPredicate, 25, // Predicate_strex_2
/* 81046*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 81048*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81051*/          OPC_EmitMergeInputChains1_0,
/* 81052*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81055*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81058*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STREXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1833:{ *:[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)
/* 81068*/        /*Scope*/ 24, /*->81093*/
/* 81069*/          OPC_CheckPredicate, 74, // Predicate_strex_4
/* 81071*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 81073*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81076*/          OPC_EmitMergeInputChains1_0,
/* 81077*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81080*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81083*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STREX), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1833:{ *:[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)
/* 81093*/        /*Scope*/ 24, /*->81118*/
/* 81094*/          OPC_CheckPredicate, 24, // Predicate_strex_1
/* 81096*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 81098*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81101*/          OPC_EmitMergeInputChains1_0,
/* 81102*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81105*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81108*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STREXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1833:{ *:[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)
/* 81118*/        /*Scope*/ 24, /*->81143*/
/* 81119*/          OPC_CheckPredicate, 25, // Predicate_strex_2
/* 81121*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 81123*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81126*/          OPC_EmitMergeInputChains1_0,
/* 81127*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81130*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81133*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STREXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1833:{ *:[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)
/* 81143*/        0, /*End of Scope*/
/* 81144*/      0, /*End of Scope*/
/* 81145*/    /*Scope*/ 46|128,2/*302*/, /*->81449*/
/* 81147*/      OPC_CheckChild1Integer, 39|128,14/*1831*/, 
/* 81150*/      OPC_Scope, 9|128,1/*137*/, /*->81290*/ // 2 children in Scope
/* 81153*/        OPC_MoveChild2,
/* 81154*/        OPC_Scope, 32, /*->81188*/ // 4 children in Scope
/* 81156*/          OPC_CheckAndImm, 127|128,1/*255*/, 
/* 81159*/          OPC_RecordChild0, // #1 = $Rt
/* 81160*/          OPC_MoveParent,
/* 81161*/          OPC_RecordChild3, // #2 = $addr
/* 81162*/          OPC_CheckChild3Type, MVT::i32,
/* 81164*/          OPC_CheckPredicate, 24, // Predicate_stlex_1
/* 81166*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 81168*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81171*/          OPC_EmitMergeInputChains1_0,
/* 81172*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81175*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81178*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STLEXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1831:{ *:[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)
/* 81188*/        /*Scope*/ 33, /*->81222*/
/* 81189*/          OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 81193*/          OPC_RecordChild0, // #1 = $Rt
/* 81194*/          OPC_MoveParent,
/* 81195*/          OPC_RecordChild3, // #2 = $addr
/* 81196*/          OPC_CheckChild3Type, MVT::i32,
/* 81198*/          OPC_CheckPredicate, 25, // Predicate_stlex_2
/* 81200*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 81202*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81205*/          OPC_EmitMergeInputChains1_0,
/* 81206*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81209*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81212*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STLEXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1831:{ *:[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)
/* 81222*/        /*Scope*/ 32, /*->81255*/
/* 81223*/          OPC_CheckAndImm, 127|128,1/*255*/, 
/* 81226*/          OPC_RecordChild0, // #1 = $Rt
/* 81227*/          OPC_MoveParent,
/* 81228*/          OPC_RecordChild3, // #2 = $addr
/* 81229*/          OPC_CheckChild3Type, MVT::i32,
/* 81231*/          OPC_CheckPredicate, 24, // Predicate_stlex_1
/* 81233*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 81235*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81238*/          OPC_EmitMergeInputChains1_0,
/* 81239*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81242*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81245*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STLEXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1831:{ *:[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)
/* 81255*/        /*Scope*/ 33, /*->81289*/
/* 81256*/          OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 81260*/          OPC_RecordChild0, // #1 = $Rt
/* 81261*/          OPC_MoveParent,
/* 81262*/          OPC_RecordChild3, // #2 = $addr
/* 81263*/          OPC_CheckChild3Type, MVT::i32,
/* 81265*/          OPC_CheckPredicate, 25, // Predicate_stlex_2
/* 81267*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 81269*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81272*/          OPC_EmitMergeInputChains1_0,
/* 81273*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81276*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81279*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STLEXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1831:{ *:[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)
/* 81289*/        0, /*End of Scope*/
/* 81290*/      /*Scope*/ 28|128,1/*156*/, /*->81448*/
/* 81292*/        OPC_RecordChild2, // #1 = $Rt
/* 81293*/        OPC_RecordChild3, // #2 = $addr
/* 81294*/        OPC_CheckChild3Type, MVT::i32,
/* 81296*/        OPC_Scope, 24, /*->81322*/ // 6 children in Scope
/* 81298*/          OPC_CheckPredicate, 24, // Predicate_stlex_1
/* 81300*/          OPC_CheckPatternPredicate, 61, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb())
/* 81302*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81305*/          OPC_EmitMergeInputChains1_0,
/* 81306*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81309*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81312*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STLEXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1831:{ *:[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)
/* 81322*/        /*Scope*/ 24, /*->81347*/
/* 81323*/          OPC_CheckPredicate, 25, // Predicate_stlex_2
/* 81325*/          OPC_CheckPatternPredicate, 61, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb())
/* 81327*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81330*/          OPC_EmitMergeInputChains1_0,
/* 81331*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81334*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81337*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STLEXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1831:{ *:[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)
/* 81347*/        /*Scope*/ 24, /*->81372*/
/* 81348*/          OPC_CheckPredicate, 74, // Predicate_stlex_4
/* 81350*/          OPC_CheckPatternPredicate, 61, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb())
/* 81352*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81355*/          OPC_EmitMergeInputChains1_0,
/* 81356*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81359*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81362*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::STLEX), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1831:{ *:[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)
/* 81372*/        /*Scope*/ 24, /*->81397*/
/* 81373*/          OPC_CheckPredicate, 24, // Predicate_stlex_1
/* 81375*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 81377*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81380*/          OPC_EmitMergeInputChains1_0,
/* 81381*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81384*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81387*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STLEXB), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1831:{ *:[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)
/* 81397*/        /*Scope*/ 24, /*->81422*/
/* 81398*/          OPC_CheckPredicate, 25, // Predicate_stlex_2
/* 81400*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 81402*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81405*/          OPC_EmitMergeInputChains1_0,
/* 81406*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81409*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81412*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STLEXH), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1831:{ *:[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)
/* 81422*/        /*Scope*/ 24, /*->81447*/
/* 81423*/          OPC_CheckPredicate, 74, // Predicate_stlex_4
/* 81425*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 81427*/          OPC_CheckComplexPat, /*CP*/4, /*#*/2, // SelectAddrOffsetNone:$addr #3
/* 81430*/          OPC_EmitMergeInputChains1_0,
/* 81431*/          OPC_EmitInteger, MVT::i32, 14, 
/* 81434*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81437*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2STLEX), 0|OPFL_Chain,
                        MVT::i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[i32] } 1831:{ *:[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)
/* 81447*/        0, /*End of Scope*/
/* 81448*/      0, /*End of Scope*/
/* 81449*/    /*Scope*/ 89, /*->81539*/
/* 81450*/      OPC_CheckChild1Integer, 124|128,11/*1532*/, 
/* 81453*/      OPC_RecordChild2, // #1 = $cop
/* 81454*/      OPC_MoveChild2,
/* 81455*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 81458*/      OPC_MoveParent,
/* 81459*/      OPC_RecordChild3, // #2 = $opc1
/* 81460*/      OPC_MoveChild3,
/* 81461*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 81464*/      OPC_MoveParent,
/* 81465*/      OPC_RecordChild4, // #3 = $CRn
/* 81466*/      OPC_MoveChild4,
/* 81467*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 81470*/      OPC_MoveParent,
/* 81471*/      OPC_RecordChild5, // #4 = $CRm
/* 81472*/      OPC_MoveChild5,
/* 81473*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 81476*/      OPC_MoveParent,
/* 81477*/      OPC_RecordChild6, // #5 = $opc2
/* 81478*/      OPC_MoveChild6,
/* 81479*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 81482*/      OPC_MoveParent,
/* 81483*/      OPC_Scope, 26, /*->81511*/ // 2 children in Scope
/* 81485*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 81487*/        OPC_EmitMergeInputChains1_0,
/* 81488*/        OPC_EmitConvertToTarget, 2,
/* 81490*/        OPC_EmitConvertToTarget, 5,
/* 81492*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81495*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81498*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MRC), 0|OPFL_Chain,
                      MVT::i32, 7/*#Ops*/, 1, 6, 3, 4, 7, 8, 9, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1532:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (MRC:{ *:[i32] } p_imm:{ *:[i32] }:$cop, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$opc1, c_imm:{ *:[i32] }:$CRn, c_imm:{ *:[i32] }:$CRm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$opc2)
/* 81511*/      /*Scope*/ 26, /*->81538*/
/* 81512*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasV6T2Ops()) && (Subtarget->isThumb2())
/* 81514*/        OPC_EmitMergeInputChains1_0,
/* 81515*/        OPC_EmitConvertToTarget, 2,
/* 81517*/        OPC_EmitConvertToTarget, 5,
/* 81519*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81522*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81525*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MRC), 0|OPFL_Chain,
                      MVT::i32, 7/*#Ops*/, 1, 6, 3, 4, 7, 8, 9, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1532:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (t2MRC:{ *:[i32] } p_imm:{ *:[i32] }:$cop, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$opc1, c_imm:{ *:[i32] }:$CRn, c_imm:{ *:[i32] }:$CRm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$opc2)
/* 81538*/      0, /*End of Scope*/
/* 81539*/    /*Scope*/ 81, /*->81621*/
/* 81540*/      OPC_CheckChild1Integer, 125|128,11/*1533*/, 
/* 81543*/      OPC_RecordChild2, // #1 = $cop
/* 81544*/      OPC_MoveChild2,
/* 81545*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 81548*/      OPC_MoveParent,
/* 81549*/      OPC_RecordChild3, // #2 = $opc1
/* 81550*/      OPC_MoveChild3,
/* 81551*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 81554*/      OPC_MoveParent,
/* 81555*/      OPC_RecordChild4, // #3 = $CRn
/* 81556*/      OPC_MoveChild4,
/* 81557*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 81560*/      OPC_MoveParent,
/* 81561*/      OPC_RecordChild5, // #4 = $CRm
/* 81562*/      OPC_MoveChild5,
/* 81563*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 81566*/      OPC_MoveParent,
/* 81567*/      OPC_RecordChild6, // #5 = $opc2
/* 81568*/      OPC_MoveChild6,
/* 81569*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 81572*/      OPC_MoveParent,
/* 81573*/      OPC_Scope, 18, /*->81593*/ // 2 children in Scope
/* 81575*/        OPC_CheckPatternPredicate, 63, // (Subtarget->hasV5TOps()) && (!Subtarget->isThumb())
/* 81577*/        OPC_EmitMergeInputChains1_0,
/* 81578*/        OPC_EmitConvertToTarget, 2,
/* 81580*/        OPC_EmitConvertToTarget, 5,
/* 81582*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MRC2), 0|OPFL_Chain,
                      MVT::i32, 5/*#Ops*/, 1, 6, 3, 4, 7, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1533:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (MRC2:{ *:[i32] } p_imm:{ *:[i32] }:$cop, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$opc1, c_imm:{ *:[i32] }:$CRn, c_imm:{ *:[i32] }:$CRm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$opc2)
/* 81593*/      /*Scope*/ 26, /*->81620*/
/* 81594*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasV6T2Ops()) && (Subtarget->isThumb2())
/* 81596*/        OPC_EmitMergeInputChains1_0,
/* 81597*/        OPC_EmitConvertToTarget, 2,
/* 81599*/        OPC_EmitConvertToTarget, 5,
/* 81601*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81604*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81607*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MRC2), 0|OPFL_Chain,
                      MVT::i32, 7/*#Ops*/, 1, 6, 3, 4, 7, 8, 9, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1533:{ *:[iPTR] }, (timm:{ *:[i32] }):$cop, (timm:{ *:[i32] }):$opc1, (timm:{ *:[i32] }):$CRn, (timm:{ *:[i32] }):$CRm, (timm:{ *:[i32] }):$opc2) - Complexity = 23
                  // Dst: (t2MRC2:{ *:[i32] } p_imm:{ *:[i32] }:$cop, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$opc1, c_imm:{ *:[i32] }:$CRn, c_imm:{ *:[i32] }:$CRm, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$opc2)
/* 81620*/      0, /*End of Scope*/
/* 81621*/    /*Scope*/ 25|128,1/*153*/, /*->81776*/
/* 81623*/      OPC_CheckChild1Integer, 118|128,11/*1526*/, 
/* 81626*/      OPC_RecordChild2, // #1 = $addr
/* 81627*/      OPC_CheckChild2Type, MVT::i32,
/* 81629*/      OPC_Scope, 24, /*->81655*/ // 6 children in Scope
/* 81631*/        OPC_CheckPredicate, 74, // Predicate_ldrex_4
/* 81633*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 81635*/        OPC_CheckComplexPat, /*CP*/40, /*#*/1, // SelectT2AddrModeExclusive:$addr #2 #3
/* 81638*/        OPC_EmitMergeInputChains1_0,
/* 81639*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81642*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81645*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDREX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1526:{ *:[iPTR] }, t2addrmode_imm0_1020s4:{ *:[i32] }:$addr)<<P:Predicate_ldrex_4>> - Complexity = 18
                  // Dst: (t2LDREX:{ *:[i32] } t2addrmode_imm0_1020s4:{ *:[i32] }:$addr)
/* 81655*/      /*Scope*/ 23, /*->81679*/
/* 81656*/        OPC_CheckPredicate, 24, // Predicate_ldrex_1
/* 81658*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 81660*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 81663*/        OPC_EmitMergeInputChains1_0,
/* 81664*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81667*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81670*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDREXB), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1526:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldrex_1>> - Complexity = 15
                  // Dst: (LDREXB:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 81679*/      /*Scope*/ 23, /*->81703*/
/* 81680*/        OPC_CheckPredicate, 25, // Predicate_ldrex_2
/* 81682*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 81684*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 81687*/        OPC_EmitMergeInputChains1_0,
/* 81688*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81691*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81694*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDREXH), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1526:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldrex_2>> - Complexity = 15
                  // Dst: (LDREXH:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 81703*/      /*Scope*/ 23, /*->81727*/
/* 81704*/        OPC_CheckPredicate, 74, // Predicate_ldrex_4
/* 81706*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 81708*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 81711*/        OPC_EmitMergeInputChains1_0,
/* 81712*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81715*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81718*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDREX), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1526:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldrex_4>> - Complexity = 15
                  // Dst: (LDREX:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 81727*/      /*Scope*/ 23, /*->81751*/
/* 81728*/        OPC_CheckPredicate, 24, // Predicate_ldrex_1
/* 81730*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 81732*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 81735*/        OPC_EmitMergeInputChains1_0,
/* 81736*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81739*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81742*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDREXB), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1526:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldrex_1>> - Complexity = 15
                  // Dst: (t2LDREXB:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 81751*/      /*Scope*/ 23, /*->81775*/
/* 81752*/        OPC_CheckPredicate, 25, // Predicate_ldrex_2
/* 81754*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/* 81756*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 81759*/        OPC_EmitMergeInputChains1_0,
/* 81760*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81763*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81766*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDREXH), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1526:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldrex_2>> - Complexity = 15
                  // Dst: (t2LDREXH:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 81775*/      0, /*End of Scope*/
/* 81776*/    /*Scope*/ 24|128,1/*152*/, /*->81930*/
/* 81778*/      OPC_CheckChild1Integer, 112|128,11/*1520*/, 
/* 81781*/      OPC_RecordChild2, // #1 = $addr
/* 81782*/      OPC_CheckChild2Type, MVT::i32,
/* 81784*/      OPC_Scope, 23, /*->81809*/ // 6 children in Scope
/* 81786*/        OPC_CheckPredicate, 24, // Predicate_ldaex_1
/* 81788*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb())
/* 81790*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 81793*/        OPC_EmitMergeInputChains1_0,
/* 81794*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81797*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81800*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDAEXB), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1520:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_1>> - Complexity = 15
                  // Dst: (LDAEXB:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 81809*/      /*Scope*/ 23, /*->81833*/
/* 81810*/        OPC_CheckPredicate, 25, // Predicate_ldaex_2
/* 81812*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb())
/* 81814*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 81817*/        OPC_EmitMergeInputChains1_0,
/* 81818*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81821*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81824*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDAEXH), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1520:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_2>> - Complexity = 15
                  // Dst: (LDAEXH:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 81833*/      /*Scope*/ 23, /*->81857*/
/* 81834*/        OPC_CheckPredicate, 74, // Predicate_ldaex_4
/* 81836*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb())
/* 81838*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 81841*/        OPC_EmitMergeInputChains1_0,
/* 81842*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81845*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81848*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::LDAEX), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1520:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_4>> - Complexity = 15
                  // Dst: (LDAEX:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 81857*/      /*Scope*/ 23, /*->81881*/
/* 81858*/        OPC_CheckPredicate, 24, // Predicate_ldaex_1
/* 81860*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 81862*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 81865*/        OPC_EmitMergeInputChains1_0,
/* 81866*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81869*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81872*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDAEXB), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1520:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_1>> - Complexity = 15
                  // Dst: (t2LDAEXB:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 81881*/      /*Scope*/ 23, /*->81905*/
/* 81882*/        OPC_CheckPredicate, 25, // Predicate_ldaex_2
/* 81884*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 81886*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 81889*/        OPC_EmitMergeInputChains1_0,
/* 81890*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81893*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81896*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDAEXH), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1520:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_2>> - Complexity = 15
                  // Dst: (t2LDAEXH:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 81905*/      /*Scope*/ 23, /*->81929*/
/* 81906*/        OPC_CheckPredicate, 74, // Predicate_ldaex_4
/* 81908*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 81910*/        OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 81913*/        OPC_EmitMergeInputChains1_0,
/* 81914*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81917*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81920*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2LDAEX), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1520:{ *:[iPTR] }, addr_offset_none:{ *:[i32] }:$addr)<<P:Predicate_ldaex_4>> - Complexity = 15
                  // Dst: (t2LDAEX:{ *:[i32] } addr_offset_none:{ *:[i32] }:$addr)
/* 81929*/      0, /*End of Scope*/
/* 81930*/    /*Scope*/ 19, /*->81950*/
/* 81931*/      OPC_CheckChild1Integer, 29|128,14/*1821*/, 
/* 81934*/      OPC_RecordChild2, // #1 = $size
/* 81935*/      OPC_MoveChild2,
/* 81936*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 81939*/      OPC_MoveParent,
/* 81940*/      OPC_RecordChild3, // #2 = $Rn
/* 81941*/      OPC_EmitMergeInputChains1_0,
/* 81942*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::SPACE), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 1821:{ *:[iPTR] }, (timm:{ *:[i32] }):$size, GPR:{ *:[i32] }:$Rn) - Complexity = 11
                // Dst: (SPACE:{ *:[i32] } (timm:{ *:[i32] }):$size, GPR:{ *:[i32] }:$Rn)
/* 81950*/    /*Scope*/ 47, /*->81998*/
/* 81951*/      OPC_CheckChild1Integer, 125|128,13/*1789*/, 
/* 81954*/      OPC_RecordChild2, // #1 = $Rn
/* 81955*/      OPC_RecordChild3, // #2 = $Rm
/* 81956*/      OPC_Scope, 19, /*->81977*/ // 2 children in Scope
/* 81958*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 81960*/        OPC_EmitMergeInputChains1_0,
/* 81961*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81964*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81967*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SEL), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1789:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SEL:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 81977*/      /*Scope*/ 19, /*->81997*/
/* 81978*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 81980*/        OPC_EmitMergeInputChains1_0,
/* 81981*/        OPC_EmitInteger, MVT::i32, 14, 
/* 81984*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 81987*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SEL), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1789:{ *:[iPTR] }, GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SEL:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm)
/* 81997*/      0, /*End of Scope*/
/* 81998*/    /*Scope*/ 47, /*->82046*/
/* 81999*/      OPC_CheckChild1Integer, 124|128,13/*1788*/, 
/* 82002*/      OPC_RecordChild2, // #1 = $Rn
/* 82003*/      OPC_RecordChild3, // #2 = $Rm
/* 82004*/      OPC_Scope, 19, /*->82025*/ // 2 children in Scope
/* 82006*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 82008*/        OPC_EmitMergeInputChains1_0,
/* 82009*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82012*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82015*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SASX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1788:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 82025*/      /*Scope*/ 19, /*->82045*/
/* 82026*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 82028*/        OPC_EmitMergeInputChains1_0,
/* 82029*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82032*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82035*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SASX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1788:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 82045*/      0, /*End of Scope*/
/* 82046*/    /*Scope*/ 47, /*->82094*/
/* 82047*/      OPC_CheckChild1Integer, 122|128,13/*1786*/, 
/* 82050*/      OPC_RecordChild2, // #1 = $Rn
/* 82051*/      OPC_RecordChild3, // #2 = $Rm
/* 82052*/      OPC_Scope, 19, /*->82073*/ // 2 children in Scope
/* 82054*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 82056*/        OPC_EmitMergeInputChains1_0,
/* 82057*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82060*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82063*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SADD16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1786:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 82073*/      /*Scope*/ 19, /*->82093*/
/* 82074*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 82076*/        OPC_EmitMergeInputChains1_0,
/* 82077*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82080*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82083*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SADD16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1786:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 82093*/      0, /*End of Scope*/
/* 82094*/    /*Scope*/ 47, /*->82142*/
/* 82095*/      OPC_CheckChild1Integer, 123|128,13/*1787*/, 
/* 82098*/      OPC_RecordChild2, // #1 = $Rn
/* 82099*/      OPC_RecordChild3, // #2 = $Rm
/* 82100*/      OPC_Scope, 19, /*->82121*/ // 2 children in Scope
/* 82102*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 82104*/        OPC_EmitMergeInputChains1_0,
/* 82105*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82108*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82111*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SADD8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1787:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 82121*/      /*Scope*/ 19, /*->82141*/
/* 82122*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 82124*/        OPC_EmitMergeInputChains1_0,
/* 82125*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82128*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82131*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SADD8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1787:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 82141*/      0, /*End of Scope*/
/* 82142*/    /*Scope*/ 47, /*->82190*/
/* 82143*/      OPC_CheckChild1Integer, 32|128,14/*1824*/, 
/* 82146*/      OPC_RecordChild2, // #1 = $Rn
/* 82147*/      OPC_RecordChild3, // #2 = $Rm
/* 82148*/      OPC_Scope, 19, /*->82169*/ // 2 children in Scope
/* 82150*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 82152*/        OPC_EmitMergeInputChains1_0,
/* 82153*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82156*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82159*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SSAX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1824:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SSAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 82169*/      /*Scope*/ 19, /*->82189*/
/* 82170*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 82172*/        OPC_EmitMergeInputChains1_0,
/* 82173*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82176*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82179*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SSAX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1824:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SSAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 82189*/      0, /*End of Scope*/
/* 82190*/    /*Scope*/ 47, /*->82238*/
/* 82191*/      OPC_CheckChild1Integer, 33|128,14/*1825*/, 
/* 82194*/      OPC_RecordChild2, // #1 = $Rn
/* 82195*/      OPC_RecordChild3, // #2 = $Rm
/* 82196*/      OPC_Scope, 19, /*->82217*/ // 2 children in Scope
/* 82198*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 82200*/        OPC_EmitMergeInputChains1_0,
/* 82201*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82204*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82207*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SSUB16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1825:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SSUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 82217*/      /*Scope*/ 19, /*->82237*/
/* 82218*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 82220*/        OPC_EmitMergeInputChains1_0,
/* 82221*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82224*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82227*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SSUB16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1825:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 82237*/      0, /*End of Scope*/
/* 82238*/    /*Scope*/ 47, /*->82286*/
/* 82239*/      OPC_CheckChild1Integer, 34|128,14/*1826*/, 
/* 82242*/      OPC_RecordChild2, // #1 = $Rn
/* 82243*/      OPC_RecordChild3, // #2 = $Rm
/* 82244*/      OPC_Scope, 19, /*->82265*/ // 2 children in Scope
/* 82246*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 82248*/        OPC_EmitMergeInputChains1_0,
/* 82249*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82252*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82255*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SSUB8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1826:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (SSUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 82265*/      /*Scope*/ 19, /*->82285*/
/* 82266*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 82268*/        OPC_EmitMergeInputChains1_0,
/* 82269*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82272*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82275*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SSUB8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1826:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2SSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 82285*/      0, /*End of Scope*/
/* 82286*/    /*Scope*/ 47, /*->82334*/
/* 82287*/      OPC_CheckChild1Integer, 47|128,14/*1839*/, 
/* 82290*/      OPC_RecordChild2, // #1 = $Rn
/* 82291*/      OPC_RecordChild3, // #2 = $Rm
/* 82292*/      OPC_Scope, 19, /*->82313*/ // 2 children in Scope
/* 82294*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 82296*/        OPC_EmitMergeInputChains1_0,
/* 82297*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82300*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82303*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UASX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1839:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UASX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 82313*/      /*Scope*/ 19, /*->82333*/
/* 82314*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 82316*/        OPC_EmitMergeInputChains1_0,
/* 82317*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82320*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82323*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UASX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1839:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UASX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 82333*/      0, /*End of Scope*/
/* 82334*/    /*Scope*/ 47, /*->82382*/
/* 82335*/      OPC_CheckChild1Integer, 45|128,14/*1837*/, 
/* 82338*/      OPC_RecordChild2, // #1 = $Rn
/* 82339*/      OPC_RecordChild3, // #2 = $Rm
/* 82340*/      OPC_Scope, 19, /*->82361*/ // 2 children in Scope
/* 82342*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 82344*/        OPC_EmitMergeInputChains1_0,
/* 82345*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82348*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82351*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UADD16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1837:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UADD16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 82361*/      /*Scope*/ 19, /*->82381*/
/* 82362*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 82364*/        OPC_EmitMergeInputChains1_0,
/* 82365*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82368*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82371*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UADD16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1837:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 82381*/      0, /*End of Scope*/
/* 82382*/    /*Scope*/ 47, /*->82430*/
/* 82383*/      OPC_CheckChild1Integer, 46|128,14/*1838*/, 
/* 82386*/      OPC_RecordChild2, // #1 = $Rn
/* 82387*/      OPC_RecordChild3, // #2 = $Rm
/* 82388*/      OPC_Scope, 19, /*->82409*/ // 2 children in Scope
/* 82390*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 82392*/        OPC_EmitMergeInputChains1_0,
/* 82393*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82396*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82399*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::UADD8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1838:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (UADD8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 82409*/      /*Scope*/ 19, /*->82429*/
/* 82410*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 82412*/        OPC_EmitMergeInputChains1_0,
/* 82413*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82416*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82419*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2UADD8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1838:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2UADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 82429*/      0, /*End of Scope*/
/* 82430*/    /*Scope*/ 47, /*->82478*/
/* 82431*/      OPC_CheckChild1Integer, 65|128,14/*1857*/, 
/* 82434*/      OPC_RecordChild2, // #1 = $Rn
/* 82435*/      OPC_RecordChild3, // #2 = $Rm
/* 82436*/      OPC_Scope, 19, /*->82457*/ // 2 children in Scope
/* 82438*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 82440*/        OPC_EmitMergeInputChains1_0,
/* 82441*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82444*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82447*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::USAX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1857:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (USAX:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 82457*/      /*Scope*/ 19, /*->82477*/
/* 82458*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 82460*/        OPC_EmitMergeInputChains1_0,
/* 82461*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82464*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82467*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USAX), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1857:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2USAX:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 82477*/      0, /*End of Scope*/
/* 82478*/    /*Scope*/ 47, /*->82526*/
/* 82479*/      OPC_CheckChild1Integer, 66|128,14/*1858*/, 
/* 82482*/      OPC_RecordChild2, // #1 = $Rn
/* 82483*/      OPC_RecordChild3, // #2 = $Rm
/* 82484*/      OPC_Scope, 19, /*->82505*/ // 2 children in Scope
/* 82486*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 82488*/        OPC_EmitMergeInputChains1_0,
/* 82489*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82492*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82495*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::USUB16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1858:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (USUB16:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 82505*/      /*Scope*/ 19, /*->82525*/
/* 82506*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 82508*/        OPC_EmitMergeInputChains1_0,
/* 82509*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82512*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82515*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USUB16), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1858:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2USUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 82525*/      0, /*End of Scope*/
/* 82526*/    /*Scope*/ 47, /*->82574*/
/* 82527*/      OPC_CheckChild1Integer, 67|128,14/*1859*/, 
/* 82530*/      OPC_RecordChild2, // #1 = $Rn
/* 82531*/      OPC_RecordChild3, // #2 = $Rm
/* 82532*/      OPC_Scope, 19, /*->82553*/ // 2 children in Scope
/* 82534*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 82536*/        OPC_EmitMergeInputChains1_0,
/* 82537*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82540*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82543*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::USUB8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1859:{ *:[iPTR] }, GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (USUB8:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, GPRnopc:{ *:[i32] }:$Rm)
/* 82553*/      /*Scope*/ 19, /*->82573*/
/* 82554*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 82556*/        OPC_EmitMergeInputChains1_0,
/* 82557*/        OPC_EmitInteger, MVT::i32, 14, 
/* 82560*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82563*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2USUB8), 0|OPFL_Chain,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 1859:{ *:[iPTR] }, rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 8
                  // Dst: (t2USUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 82573*/      0, /*End of Scope*/
/* 82574*/    /*Scope*/ 20, /*->82595*/
/* 82575*/      OPC_CheckChild1Integer, 108|128,11/*1516*/, 
/* 82578*/      OPC_CheckPatternPredicate, 36, // (Subtarget->hasFPRegs())
/* 82580*/      OPC_EmitMergeInputChains1_0,
/* 82581*/      OPC_EmitInteger, MVT::i32, 14, 
/* 82584*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82587*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMRS), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 1516:{ *:[iPTR] }) - Complexity = 8
                // Dst: (VMRS:{ *:[i32] })
/* 82595*/    /*Scope*/ 43|128,6/*811*/, /*->83408*/
/* 82597*/      OPC_CheckChild1Integer, 69|128,12/*1605*/, 
/* 82600*/      OPC_RecordChild2, // #1 = $base
/* 82601*/      OPC_CheckChild2Type, MVT::i32,
/* 82603*/      OPC_RecordChild3, // #2 = $offsets
/* 82604*/      OPC_Scope, 57, /*->82663*/ // 4 children in Scope
/* 82606*/        OPC_CheckChild3Type, MVT::v16i8,
/* 82608*/        OPC_CheckChild4Integer, 8, 
/* 82610*/        OPC_MoveChild5,
/* 82611*/        OPC_CheckInteger, 0, 
/* 82613*/        OPC_MoveParent,
/* 82614*/        OPC_MoveChild6,
/* 82615*/        OPC_Scope, 22, /*->82639*/ // 2 children in Scope
/* 82617*/          OPC_CheckInteger, 1, 
/* 82619*/          OPC_MoveParent,
/* 82620*/          OPC_CheckType, MVT::v16i8,
/* 82622*/          OPC_EmitMergeInputChains1_0,
/* 82623*/          OPC_EmitInteger, MVT::i32, 0, 
/* 82626*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82629*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU8_rq), 0|OPFL_Chain,
                        MVT::v16i8, 4/*#Ops*/, 1, 2, 3, 4, 
                    // Src: (intrinsic_w_chain:{ *:[v16i8] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                    // Dst: (MVE_VLDRBU8_rq:{ *:[v16i8] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets)
/* 82639*/        /*Scope*/ 22, /*->82662*/
/* 82640*/          OPC_CheckInteger, 0, 
/* 82642*/          OPC_MoveParent,
/* 82643*/          OPC_CheckType, MVT::v16i8,
/* 82645*/          OPC_EmitMergeInputChains1_0,
/* 82646*/          OPC_EmitInteger, MVT::i32, 0, 
/* 82649*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82652*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU8_rq), 0|OPFL_Chain,
                        MVT::v16i8, 4/*#Ops*/, 1, 2, 3, 4, 
                    // Src: (intrinsic_w_chain:{ *:[v16i8] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                    // Dst: (MVE_VLDRBU8_rq:{ *:[v16i8] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets)
/* 82662*/        0, /*End of Scope*/
/* 82663*/      /*Scope*/ 1|128,2/*257*/, /*->82922*/
/* 82665*/        OPC_CheckChild3Type, MVT::v8i16,
/* 82667*/        OPC_Scope, 55, /*->82724*/ // 2 children in Scope
/* 82669*/          OPC_CheckChild4Integer, 8, 
/* 82671*/          OPC_MoveChild5,
/* 82672*/          OPC_CheckInteger, 0, 
/* 82674*/          OPC_MoveParent,
/* 82675*/          OPC_MoveChild6,
/* 82676*/          OPC_Scope, 22, /*->82700*/ // 2 children in Scope
/* 82678*/            OPC_CheckInteger, 1, 
/* 82680*/            OPC_MoveParent,
/* 82681*/            OPC_CheckType, MVT::v8i16,
/* 82683*/            OPC_EmitMergeInputChains1_0,
/* 82684*/            OPC_EmitInteger, MVT::i32, 0, 
/* 82687*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82690*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU16_rq), 0|OPFL_Chain,
                          MVT::v8i16, 4/*#Ops*/, 1, 2, 3, 4, 
                      // Src: (intrinsic_w_chain:{ *:[v8i16] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                      // Dst: (MVE_VLDRBU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 82700*/          /*Scope*/ 22, /*->82723*/
/* 82701*/            OPC_CheckInteger, 0, 
/* 82703*/            OPC_MoveParent,
/* 82704*/            OPC_CheckType, MVT::v8i16,
/* 82706*/            OPC_EmitMergeInputChains1_0,
/* 82707*/            OPC_EmitInteger, MVT::i32, 0, 
/* 82710*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82713*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBS16_rq), 0|OPFL_Chain,
                          MVT::v8i16, 4/*#Ops*/, 1, 2, 3, 4, 
                      // Src: (intrinsic_w_chain:{ *:[v8i16] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                      // Dst: (MVE_VLDRBS16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 82723*/          0, /*End of Scope*/
/* 82724*/        /*Scope*/ 67|128,1/*195*/, /*->82921*/
/* 82726*/          OPC_CheckChild4Integer, 16, 
/* 82728*/          OPC_MoveChild5,
/* 82729*/          OPC_Scope, 94, /*->82825*/ // 2 children in Scope
/* 82731*/            OPC_CheckInteger, 0, 
/* 82733*/            OPC_MoveParent,
/* 82734*/            OPC_MoveChild6,
/* 82735*/            OPC_Scope, 43, /*->82780*/ // 2 children in Scope
/* 82737*/              OPC_CheckInteger, 0, 
/* 82739*/              OPC_MoveParent,
/* 82740*/              OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->82760
/* 82743*/                OPC_EmitMergeInputChains1_0,
/* 82744*/                OPC_EmitInteger, MVT::i32, 0, 
/* 82747*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82750*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq_u), 0|OPFL_Chain,
                              MVT::v8i16, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v8i16] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq_u:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 82760*/              /*SwitchType*/ 17, MVT::v8f16,// ->82779
/* 82762*/                OPC_EmitMergeInputChains1_0,
/* 82763*/                OPC_EmitInteger, MVT::i32, 0, 
/* 82766*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82769*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq_u), 0|OPFL_Chain,
                              MVT::v8f16, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v8f16] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq_u:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 82779*/              0, // EndSwitchType
/* 82780*/            /*Scope*/ 43, /*->82824*/
/* 82781*/              OPC_CheckInteger, 1, 
/* 82783*/              OPC_MoveParent,
/* 82784*/              OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->82804
/* 82787*/                OPC_EmitMergeInputChains1_0,
/* 82788*/                OPC_EmitInteger, MVT::i32, 0, 
/* 82791*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82794*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq_u), 0|OPFL_Chain,
                              MVT::v8i16, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v8i16] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq_u:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 82804*/              /*SwitchType*/ 17, MVT::v8f16,// ->82823
/* 82806*/                OPC_EmitMergeInputChains1_0,
/* 82807*/                OPC_EmitInteger, MVT::i32, 0, 
/* 82810*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82813*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq_u), 0|OPFL_Chain,
                              MVT::v8f16, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v8f16] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq_u:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 82823*/              0, // EndSwitchType
/* 82824*/            0, /*End of Scope*/
/* 82825*/          /*Scope*/ 94, /*->82920*/
/* 82826*/            OPC_CheckInteger, 1, 
/* 82828*/            OPC_MoveParent,
/* 82829*/            OPC_MoveChild6,
/* 82830*/            OPC_Scope, 43, /*->82875*/ // 2 children in Scope
/* 82832*/              OPC_CheckInteger, 0, 
/* 82834*/              OPC_MoveParent,
/* 82835*/              OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->82855
/* 82838*/                OPC_EmitMergeInputChains1_0,
/* 82839*/                OPC_EmitInteger, MVT::i32, 0, 
/* 82842*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82845*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq), 0|OPFL_Chain,
                              MVT::v8i16, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v8i16] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 82855*/              /*SwitchType*/ 17, MVT::v8f16,// ->82874
/* 82857*/                OPC_EmitMergeInputChains1_0,
/* 82858*/                OPC_EmitInteger, MVT::i32, 0, 
/* 82861*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82864*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq), 0|OPFL_Chain,
                              MVT::v8f16, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v8f16] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 82874*/              0, // EndSwitchType
/* 82875*/            /*Scope*/ 43, /*->82919*/
/* 82876*/              OPC_CheckInteger, 1, 
/* 82878*/              OPC_MoveParent,
/* 82879*/              OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->82899
/* 82882*/                OPC_EmitMergeInputChains1_0,
/* 82883*/                OPC_EmitInteger, MVT::i32, 0, 
/* 82886*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82889*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq), 0|OPFL_Chain,
                              MVT::v8i16, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v8i16] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 82899*/              /*SwitchType*/ 17, MVT::v8f16,// ->82918
/* 82901*/                OPC_EmitMergeInputChains1_0,
/* 82902*/                OPC_EmitInteger, MVT::i32, 0, 
/* 82905*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82908*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq), 0|OPFL_Chain,
                              MVT::v8f16, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v8f16] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets)
/* 82918*/              0, // EndSwitchType
/* 82919*/            0, /*End of Scope*/
/* 82920*/          0, /*End of Scope*/
/* 82921*/        0, /*End of Scope*/
/* 82922*/      /*Scope*/ 113|128,2/*369*/, /*->83293*/
/* 82924*/        OPC_CheckChild3Type, MVT::v4i32,
/* 82926*/        OPC_Scope, 55, /*->82983*/ // 3 children in Scope
/* 82928*/          OPC_CheckChild4Integer, 8, 
/* 82930*/          OPC_MoveChild5,
/* 82931*/          OPC_CheckInteger, 0, 
/* 82933*/          OPC_MoveParent,
/* 82934*/          OPC_MoveChild6,
/* 82935*/          OPC_Scope, 22, /*->82959*/ // 2 children in Scope
/* 82937*/            OPC_CheckInteger, 1, 
/* 82939*/            OPC_MoveParent,
/* 82940*/            OPC_CheckType, MVT::v4i32,
/* 82942*/            OPC_EmitMergeInputChains1_0,
/* 82943*/            OPC_EmitInteger, MVT::i32, 0, 
/* 82946*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82949*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU32_rq), 0|OPFL_Chain,
                          MVT::v4i32, 4/*#Ops*/, 1, 2, 3, 4, 
                      // Src: (intrinsic_w_chain:{ *:[v4i32] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                      // Dst: (MVE_VLDRBU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 82959*/          /*Scope*/ 22, /*->82982*/
/* 82960*/            OPC_CheckInteger, 0, 
/* 82962*/            OPC_MoveParent,
/* 82963*/            OPC_CheckType, MVT::v4i32,
/* 82965*/            OPC_EmitMergeInputChains1_0,
/* 82966*/            OPC_EmitInteger, MVT::i32, 0, 
/* 82969*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 82972*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBS32_rq), 0|OPFL_Chain,
                          MVT::v4i32, 4/*#Ops*/, 1, 2, 3, 4, 
                      // Src: (intrinsic_w_chain:{ *:[v4i32] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                      // Dst: (MVE_VLDRBS32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 82982*/          0, /*End of Scope*/
/* 82983*/        /*Scope*/ 111, /*->83095*/
/* 82984*/          OPC_CheckChild4Integer, 16, 
/* 82986*/          OPC_MoveChild5,
/* 82987*/          OPC_Scope, 52, /*->83041*/ // 2 children in Scope
/* 82989*/            OPC_CheckInteger, 0, 
/* 82991*/            OPC_MoveParent,
/* 82992*/            OPC_MoveChild6,
/* 82993*/            OPC_Scope, 22, /*->83017*/ // 2 children in Scope
/* 82995*/              OPC_CheckInteger, 1, 
/* 82997*/              OPC_MoveParent,
/* 82998*/              OPC_CheckType, MVT::v4i32,
/* 83000*/              OPC_EmitMergeInputChains1_0,
/* 83001*/              OPC_EmitInteger, MVT::i32, 0, 
/* 83004*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83007*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU32_rq_u), 0|OPFL_Chain,
                            MVT::v4i32, 4/*#Ops*/, 1, 2, 3, 4, 
                        // Src: (intrinsic_w_chain:{ *:[v4i32] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VLDRHU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 83017*/            /*Scope*/ 22, /*->83040*/
/* 83018*/              OPC_CheckInteger, 0, 
/* 83020*/              OPC_MoveParent,
/* 83021*/              OPC_CheckType, MVT::v4i32,
/* 83023*/              OPC_EmitMergeInputChains1_0,
/* 83024*/              OPC_EmitInteger, MVT::i32, 0, 
/* 83027*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83030*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHS32_rq_u), 0|OPFL_Chain,
                            MVT::v4i32, 4/*#Ops*/, 1, 2, 3, 4, 
                        // Src: (intrinsic_w_chain:{ *:[v4i32] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VLDRHS32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 83040*/            0, /*End of Scope*/
/* 83041*/          /*Scope*/ 52, /*->83094*/
/* 83042*/            OPC_CheckInteger, 1, 
/* 83044*/            OPC_MoveParent,
/* 83045*/            OPC_MoveChild6,
/* 83046*/            OPC_Scope, 22, /*->83070*/ // 2 children in Scope
/* 83048*/              OPC_CheckInteger, 1, 
/* 83050*/              OPC_MoveParent,
/* 83051*/              OPC_CheckType, MVT::v4i32,
/* 83053*/              OPC_EmitMergeInputChains1_0,
/* 83054*/              OPC_EmitInteger, MVT::i32, 0, 
/* 83057*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83060*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU32_rq), 0|OPFL_Chain,
                            MVT::v4i32, 4/*#Ops*/, 1, 2, 3, 4, 
                        // Src: (intrinsic_w_chain:{ *:[v4i32] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VLDRHU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 83070*/            /*Scope*/ 22, /*->83093*/
/* 83071*/              OPC_CheckInteger, 0, 
/* 83073*/              OPC_MoveParent,
/* 83074*/              OPC_CheckType, MVT::v4i32,
/* 83076*/              OPC_EmitMergeInputChains1_0,
/* 83077*/              OPC_EmitInteger, MVT::i32, 0, 
/* 83080*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83083*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHS32_rq), 0|OPFL_Chain,
                            MVT::v4i32, 4/*#Ops*/, 1, 2, 3, 4, 
                        // Src: (intrinsic_w_chain:{ *:[v4i32] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                        // Dst: (MVE_VLDRHS32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 83093*/            0, /*End of Scope*/
/* 83094*/          0, /*End of Scope*/
/* 83095*/        /*Scope*/ 67|128,1/*195*/, /*->83292*/
/* 83097*/          OPC_CheckChild4Integer, 32, 
/* 83099*/          OPC_MoveChild5,
/* 83100*/          OPC_Scope, 94, /*->83196*/ // 2 children in Scope
/* 83102*/            OPC_CheckInteger, 0, 
/* 83104*/            OPC_MoveParent,
/* 83105*/            OPC_MoveChild6,
/* 83106*/            OPC_Scope, 43, /*->83151*/ // 2 children in Scope
/* 83108*/              OPC_CheckInteger, 0, 
/* 83110*/              OPC_MoveParent,
/* 83111*/              OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->83131
/* 83114*/                OPC_EmitMergeInputChains1_0,
/* 83115*/                OPC_EmitInteger, MVT::i32, 0, 
/* 83118*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83121*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq_u), 0|OPFL_Chain,
                              MVT::v4i32, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v4i32] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 83131*/              /*SwitchType*/ 17, MVT::v4f32,// ->83150
/* 83133*/                OPC_EmitMergeInputChains1_0,
/* 83134*/                OPC_EmitInteger, MVT::i32, 0, 
/* 83137*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83140*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq_u), 0|OPFL_Chain,
                              MVT::v4f32, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v4f32] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq_u:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 83150*/              0, // EndSwitchType
/* 83151*/            /*Scope*/ 43, /*->83195*/
/* 83152*/              OPC_CheckInteger, 1, 
/* 83154*/              OPC_MoveParent,
/* 83155*/              OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->83175
/* 83158*/                OPC_EmitMergeInputChains1_0,
/* 83159*/                OPC_EmitInteger, MVT::i32, 0, 
/* 83162*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83165*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq_u), 0|OPFL_Chain,
                              MVT::v4i32, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v4i32] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 83175*/              /*SwitchType*/ 17, MVT::v4f32,// ->83194
/* 83177*/                OPC_EmitMergeInputChains1_0,
/* 83178*/                OPC_EmitInteger, MVT::i32, 0, 
/* 83181*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83184*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq_u), 0|OPFL_Chain,
                              MVT::v4f32, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v4f32] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq_u:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 83194*/              0, // EndSwitchType
/* 83195*/            0, /*End of Scope*/
/* 83196*/          /*Scope*/ 94, /*->83291*/
/* 83197*/            OPC_CheckInteger, 2, 
/* 83199*/            OPC_MoveParent,
/* 83200*/            OPC_MoveChild6,
/* 83201*/            OPC_Scope, 43, /*->83246*/ // 2 children in Scope
/* 83203*/              OPC_CheckInteger, 0, 
/* 83205*/              OPC_MoveParent,
/* 83206*/              OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->83226
/* 83209*/                OPC_EmitMergeInputChains1_0,
/* 83210*/                OPC_EmitInteger, MVT::i32, 0, 
/* 83213*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83216*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq), 0|OPFL_Chain,
                              MVT::v4i32, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v4i32] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 83226*/              /*SwitchType*/ 17, MVT::v4f32,// ->83245
/* 83228*/                OPC_EmitMergeInputChains1_0,
/* 83229*/                OPC_EmitInteger, MVT::i32, 0, 
/* 83232*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83235*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq), 0|OPFL_Chain,
                              MVT::v4f32, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v4f32] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 83245*/              0, // EndSwitchType
/* 83246*/            /*Scope*/ 43, /*->83290*/
/* 83247*/              OPC_CheckInteger, 1, 
/* 83249*/              OPC_MoveParent,
/* 83250*/              OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->83270
/* 83253*/                OPC_EmitMergeInputChains1_0,
/* 83254*/                OPC_EmitInteger, MVT::i32, 0, 
/* 83257*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83260*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq), 0|OPFL_Chain,
                              MVT::v4i32, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v4i32] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 83270*/              /*SwitchType*/ 17, MVT::v4f32,// ->83289
/* 83272*/                OPC_EmitMergeInputChains1_0,
/* 83273*/                OPC_EmitInteger, MVT::i32, 0, 
/* 83276*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83279*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq), 0|OPFL_Chain,
                              MVT::v4f32, 4/*#Ops*/, 1, 2, 3, 4, 
                          // Src: (intrinsic_w_chain:{ *:[v4f32] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets)
/* 83289*/              0, // EndSwitchType
/* 83290*/            0, /*End of Scope*/
/* 83291*/          0, /*End of Scope*/
/* 83292*/        0, /*End of Scope*/
/* 83293*/      /*Scope*/ 113, /*->83407*/
/* 83294*/        OPC_CheckChild3Type, MVT::v2i64,
/* 83296*/        OPC_CheckChild4Integer, 64, 
/* 83298*/        OPC_MoveChild5,
/* 83299*/        OPC_Scope, 52, /*->83353*/ // 2 children in Scope
/* 83301*/          OPC_CheckInteger, 0, 
/* 83303*/          OPC_MoveParent,
/* 83304*/          OPC_MoveChild6,
/* 83305*/          OPC_Scope, 22, /*->83329*/ // 2 children in Scope
/* 83307*/            OPC_CheckInteger, 0, 
/* 83309*/            OPC_MoveParent,
/* 83310*/            OPC_CheckType, MVT::v2i64,
/* 83312*/            OPC_EmitMergeInputChains1_0,
/* 83313*/            OPC_EmitInteger, MVT::i32, 0, 
/* 83316*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83319*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRDU64_rq_u), 0|OPFL_Chain,
                          MVT::v2i64, 4/*#Ops*/, 1, 2, 3, 4, 
                      // Src: (intrinsic_w_chain:{ *:[v2i64] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                      // Dst: (MVE_VLDRDU64_rq_u:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
/* 83329*/          /*Scope*/ 22, /*->83352*/
/* 83330*/            OPC_CheckInteger, 1, 
/* 83332*/            OPC_MoveParent,
/* 83333*/            OPC_CheckType, MVT::v2i64,
/* 83335*/            OPC_EmitMergeInputChains1_0,
/* 83336*/            OPC_EmitInteger, MVT::i32, 0, 
/* 83339*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83342*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRDU64_rq_u), 0|OPFL_Chain,
                          MVT::v2i64, 4/*#Ops*/, 1, 2, 3, 4, 
                      // Src: (intrinsic_w_chain:{ *:[v2i64] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                      // Dst: (MVE_VLDRDU64_rq_u:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
/* 83352*/          0, /*End of Scope*/
/* 83353*/        /*Scope*/ 52, /*->83406*/
/* 83354*/          OPC_CheckInteger, 3, 
/* 83356*/          OPC_MoveParent,
/* 83357*/          OPC_MoveChild6,
/* 83358*/          OPC_Scope, 22, /*->83382*/ // 2 children in Scope
/* 83360*/            OPC_CheckInteger, 0, 
/* 83362*/            OPC_MoveParent,
/* 83363*/            OPC_CheckType, MVT::v2i64,
/* 83365*/            OPC_EmitMergeInputChains1_0,
/* 83366*/            OPC_EmitInteger, MVT::i32, 0, 
/* 83369*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83372*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRDU64_rq), 0|OPFL_Chain,
                          MVT::v2i64, 4/*#Ops*/, 1, 2, 3, 4, 
                      // Src: (intrinsic_w_chain:{ *:[v2i64] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 3:{ *:[i32] }, 0:{ *:[i32] }) - Complexity = 23
                      // Dst: (MVE_VLDRDU64_rq:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
/* 83382*/          /*Scope*/ 22, /*->83405*/
/* 83383*/            OPC_CheckInteger, 1, 
/* 83385*/            OPC_MoveParent,
/* 83386*/            OPC_CheckType, MVT::v2i64,
/* 83388*/            OPC_EmitMergeInputChains1_0,
/* 83389*/            OPC_EmitInteger, MVT::i32, 0, 
/* 83392*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 83395*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRDU64_rq), 0|OPFL_Chain,
                          MVT::v2i64, 4/*#Ops*/, 1, 2, 3, 4, 
                      // Src: (intrinsic_w_chain:{ *:[v2i64] } 1605:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 3:{ *:[i32] }, 1:{ *:[i32] }) - Complexity = 23
                      // Dst: (MVE_VLDRDU64_rq:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets)
/* 83405*/          0, /*End of Scope*/
/* 83406*/        0, /*End of Scope*/
/* 83407*/      0, /*End of Scope*/
/* 83408*/    /*Scope*/ 19|128,6/*787*/, /*->84197*/
/* 83410*/      OPC_CheckChild1Integer, 70|128,12/*1606*/, 
/* 83413*/      OPC_RecordChild2, // #1 = $base
/* 83414*/      OPC_CheckChild2Type, MVT::i32,
/* 83416*/      OPC_RecordChild3, // #2 = $offsets
/* 83417*/      OPC_Scope, 57, /*->83476*/ // 4 children in Scope
/* 83419*/        OPC_CheckChild3Type, MVT::v16i8,
/* 83421*/        OPC_CheckChild4Integer, 8, 
/* 83423*/        OPC_MoveChild5,
/* 83424*/        OPC_CheckInteger, 0, 
/* 83426*/        OPC_MoveParent,
/* 83427*/        OPC_MoveChild6,
/* 83428*/        OPC_Scope, 22, /*->83452*/ // 2 children in Scope
/* 83430*/          OPC_CheckInteger, 1, 
/* 83432*/          OPC_MoveParent,
/* 83433*/          OPC_RecordChild7, // #3 = $pred
/* 83434*/          OPC_CheckChild7Type, MVT::v16i1,
/* 83436*/          OPC_CheckType, MVT::v16i8,
/* 83438*/          OPC_EmitMergeInputChains1_0,
/* 83439*/          OPC_EmitInteger, MVT::i32, 1, 
/* 83442*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU8_rq), 0|OPFL_Chain,
                        MVT::v16i8, 4/*#Ops*/, 1, 2, 4, 3, 
                    // Src: (intrinsic_w_chain:{ *:[v16i8] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred) - Complexity = 23
                    // Dst: (MVE_VLDRBU8_rq:{ *:[v16i8] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred)
/* 83452*/        /*Scope*/ 22, /*->83475*/
/* 83453*/          OPC_CheckInteger, 0, 
/* 83455*/          OPC_MoveParent,
/* 83456*/          OPC_RecordChild7, // #3 = $pred
/* 83457*/          OPC_CheckChild7Type, MVT::v16i1,
/* 83459*/          OPC_CheckType, MVT::v16i8,
/* 83461*/          OPC_EmitMergeInputChains1_0,
/* 83462*/          OPC_EmitInteger, MVT::i32, 1, 
/* 83465*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU8_rq), 0|OPFL_Chain,
                        MVT::v16i8, 4/*#Ops*/, 1, 2, 4, 3, 
                    // Src: (intrinsic_w_chain:{ *:[v16i8] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred) - Complexity = 23
                    // Dst: (MVE_VLDRBU8_rq:{ *:[v16i8] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v16i8] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred)
/* 83475*/        0, /*End of Scope*/
/* 83476*/      /*Scope*/ 117|128,1/*245*/, /*->83723*/
/* 83478*/        OPC_CheckChild3Type, MVT::v8i16,
/* 83480*/        OPC_Scope, 55, /*->83537*/ // 2 children in Scope
/* 83482*/          OPC_CheckChild4Integer, 8, 
/* 83484*/          OPC_MoveChild5,
/* 83485*/          OPC_CheckInteger, 0, 
/* 83487*/          OPC_MoveParent,
/* 83488*/          OPC_MoveChild6,
/* 83489*/          OPC_Scope, 22, /*->83513*/ // 2 children in Scope
/* 83491*/            OPC_CheckInteger, 1, 
/* 83493*/            OPC_MoveParent,
/* 83494*/            OPC_RecordChild7, // #3 = $pred
/* 83495*/            OPC_CheckChild7Type, MVT::v8i1,
/* 83497*/            OPC_CheckType, MVT::v8i16,
/* 83499*/            OPC_EmitMergeInputChains1_0,
/* 83500*/            OPC_EmitInteger, MVT::i32, 1, 
/* 83503*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU16_rq), 0|OPFL_Chain,
                          MVT::v8i16, 4/*#Ops*/, 1, 2, 4, 3, 
                      // Src: (intrinsic_w_chain:{ *:[v8i16] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 23
                      // Dst: (MVE_VLDRBU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 83513*/          /*Scope*/ 22, /*->83536*/
/* 83514*/            OPC_CheckInteger, 0, 
/* 83516*/            OPC_MoveParent,
/* 83517*/            OPC_RecordChild7, // #3 = $pred
/* 83518*/            OPC_CheckChild7Type, MVT::v8i1,
/* 83520*/            OPC_CheckType, MVT::v8i16,
/* 83522*/            OPC_EmitMergeInputChains1_0,
/* 83523*/            OPC_EmitInteger, MVT::i32, 1, 
/* 83526*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBS16_rq), 0|OPFL_Chain,
                          MVT::v8i16, 4/*#Ops*/, 1, 2, 4, 3, 
                      // Src: (intrinsic_w_chain:{ *:[v8i16] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 23
                      // Dst: (MVE_VLDRBS16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 83536*/          0, /*End of Scope*/
/* 83537*/        /*Scope*/ 55|128,1/*183*/, /*->83722*/
/* 83539*/          OPC_CheckChild4Integer, 16, 
/* 83541*/          OPC_MoveChild5,
/* 83542*/          OPC_Scope, 88, /*->83632*/ // 2 children in Scope
/* 83544*/            OPC_CheckInteger, 0, 
/* 83546*/            OPC_MoveParent,
/* 83547*/            OPC_MoveChild6,
/* 83548*/            OPC_Scope, 40, /*->83590*/ // 2 children in Scope
/* 83550*/              OPC_CheckInteger, 0, 
/* 83552*/              OPC_MoveParent,
/* 83553*/              OPC_RecordChild7, // #3 = $pred
/* 83554*/              OPC_CheckChild7Type, MVT::v8i1,
/* 83556*/              OPC_SwitchType /*2 cases */, 14, MVT::v8i16,// ->83573
/* 83559*/                OPC_EmitMergeInputChains1_0,
/* 83560*/                OPC_EmitInteger, MVT::i32, 1, 
/* 83563*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq_u), 0|OPFL_Chain,
                              MVT::v8i16, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v8i16] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq_u:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 83573*/              /*SwitchType*/ 14, MVT::v8f16,// ->83589
/* 83575*/                OPC_EmitMergeInputChains1_0,
/* 83576*/                OPC_EmitInteger, MVT::i32, 1, 
/* 83579*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq_u), 0|OPFL_Chain,
                              MVT::v8f16, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v8f16] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq_u:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 83589*/              0, // EndSwitchType
/* 83590*/            /*Scope*/ 40, /*->83631*/
/* 83591*/              OPC_CheckInteger, 1, 
/* 83593*/              OPC_MoveParent,
/* 83594*/              OPC_RecordChild7, // #3 = $pred
/* 83595*/              OPC_CheckChild7Type, MVT::v8i1,
/* 83597*/              OPC_SwitchType /*2 cases */, 14, MVT::v8i16,// ->83614
/* 83600*/                OPC_EmitMergeInputChains1_0,
/* 83601*/                OPC_EmitInteger, MVT::i32, 1, 
/* 83604*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq_u), 0|OPFL_Chain,
                              MVT::v8i16, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v8i16] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq_u:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 83614*/              /*SwitchType*/ 14, MVT::v8f16,// ->83630
/* 83616*/                OPC_EmitMergeInputChains1_0,
/* 83617*/                OPC_EmitInteger, MVT::i32, 1, 
/* 83620*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq_u), 0|OPFL_Chain,
                              MVT::v8f16, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v8f16] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq_u:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 83630*/              0, // EndSwitchType
/* 83631*/            0, /*End of Scope*/
/* 83632*/          /*Scope*/ 88, /*->83721*/
/* 83633*/            OPC_CheckInteger, 1, 
/* 83635*/            OPC_MoveParent,
/* 83636*/            OPC_MoveChild6,
/* 83637*/            OPC_Scope, 40, /*->83679*/ // 2 children in Scope
/* 83639*/              OPC_CheckInteger, 0, 
/* 83641*/              OPC_MoveParent,
/* 83642*/              OPC_RecordChild7, // #3 = $pred
/* 83643*/              OPC_CheckChild7Type, MVT::v8i1,
/* 83645*/              OPC_SwitchType /*2 cases */, 14, MVT::v8i16,// ->83662
/* 83648*/                OPC_EmitMergeInputChains1_0,
/* 83649*/                OPC_EmitInteger, MVT::i32, 1, 
/* 83652*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq), 0|OPFL_Chain,
                              MVT::v8i16, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v8i16] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 83662*/              /*SwitchType*/ 14, MVT::v8f16,// ->83678
/* 83664*/                OPC_EmitMergeInputChains1_0,
/* 83665*/                OPC_EmitInteger, MVT::i32, 1, 
/* 83668*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq), 0|OPFL_Chain,
                              MVT::v8f16, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v8f16] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 83678*/              0, // EndSwitchType
/* 83679*/            /*Scope*/ 40, /*->83720*/
/* 83680*/              OPC_CheckInteger, 1, 
/* 83682*/              OPC_MoveParent,
/* 83683*/              OPC_RecordChild7, // #3 = $pred
/* 83684*/              OPC_CheckChild7Type, MVT::v8i1,
/* 83686*/              OPC_SwitchType /*2 cases */, 14, MVT::v8i16,// ->83703
/* 83689*/                OPC_EmitMergeInputChains1_0,
/* 83690*/                OPC_EmitInteger, MVT::i32, 1, 
/* 83693*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq), 0|OPFL_Chain,
                              MVT::v8i16, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v8i16] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq:{ *:[v8i16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 83703*/              /*SwitchType*/ 14, MVT::v8f16,// ->83719
/* 83705*/                OPC_EmitMergeInputChains1_0,
/* 83706*/                OPC_EmitInteger, MVT::i32, 1, 
/* 83709*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16_rq), 0|OPFL_Chain,
                              MVT::v8f16, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v8f16] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRHU16_rq:{ *:[v8f16] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v8i16] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 83719*/              0, // EndSwitchType
/* 83720*/            0, /*End of Scope*/
/* 83721*/          0, /*End of Scope*/
/* 83722*/        0, /*End of Scope*/
/* 83723*/      /*Scope*/ 101|128,2/*357*/, /*->84082*/
/* 83725*/        OPC_CheckChild3Type, MVT::v4i32,
/* 83727*/        OPC_Scope, 55, /*->83784*/ // 3 children in Scope
/* 83729*/          OPC_CheckChild4Integer, 8, 
/* 83731*/          OPC_MoveChild5,
/* 83732*/          OPC_CheckInteger, 0, 
/* 83734*/          OPC_MoveParent,
/* 83735*/          OPC_MoveChild6,
/* 83736*/          OPC_Scope, 22, /*->83760*/ // 2 children in Scope
/* 83738*/            OPC_CheckInteger, 1, 
/* 83740*/            OPC_MoveParent,
/* 83741*/            OPC_RecordChild7, // #3 = $pred
/* 83742*/            OPC_CheckChild7Type, MVT::v4i1,
/* 83744*/            OPC_CheckType, MVT::v4i32,
/* 83746*/            OPC_EmitMergeInputChains1_0,
/* 83747*/            OPC_EmitInteger, MVT::i32, 1, 
/* 83750*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU32_rq), 0|OPFL_Chain,
                          MVT::v4i32, 4/*#Ops*/, 1, 2, 4, 3, 
                      // Src: (intrinsic_w_chain:{ *:[v4i32] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                      // Dst: (MVE_VLDRBU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 83760*/          /*Scope*/ 22, /*->83783*/
/* 83761*/            OPC_CheckInteger, 0, 
/* 83763*/            OPC_MoveParent,
/* 83764*/            OPC_RecordChild7, // #3 = $pred
/* 83765*/            OPC_CheckChild7Type, MVT::v4i1,
/* 83767*/            OPC_CheckType, MVT::v4i32,
/* 83769*/            OPC_EmitMergeInputChains1_0,
/* 83770*/            OPC_EmitInteger, MVT::i32, 1, 
/* 83773*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBS32_rq), 0|OPFL_Chain,
                          MVT::v4i32, 4/*#Ops*/, 1, 2, 4, 3, 
                      // Src: (intrinsic_w_chain:{ *:[v4i32] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 8:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                      // Dst: (MVE_VLDRBS32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 83783*/          0, /*End of Scope*/
/* 83784*/        /*Scope*/ 111, /*->83896*/
/* 83785*/          OPC_CheckChild4Integer, 16, 
/* 83787*/          OPC_MoveChild5,
/* 83788*/          OPC_Scope, 52, /*->83842*/ // 2 children in Scope
/* 83790*/            OPC_CheckInteger, 0, 
/* 83792*/            OPC_MoveParent,
/* 83793*/            OPC_MoveChild6,
/* 83794*/            OPC_Scope, 22, /*->83818*/ // 2 children in Scope
/* 83796*/              OPC_CheckInteger, 1, 
/* 83798*/              OPC_MoveParent,
/* 83799*/              OPC_RecordChild7, // #3 = $pred
/* 83800*/              OPC_CheckChild7Type, MVT::v4i1,
/* 83802*/              OPC_CheckType, MVT::v4i32,
/* 83804*/              OPC_EmitMergeInputChains1_0,
/* 83805*/              OPC_EmitInteger, MVT::i32, 1, 
/* 83808*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU32_rq_u), 0|OPFL_Chain,
                            MVT::v4i32, 4/*#Ops*/, 1, 2, 4, 3, 
                        // Src: (intrinsic_w_chain:{ *:[v4i32] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                        // Dst: (MVE_VLDRHU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 83818*/            /*Scope*/ 22, /*->83841*/
/* 83819*/              OPC_CheckInteger, 0, 
/* 83821*/              OPC_MoveParent,
/* 83822*/              OPC_RecordChild7, // #3 = $pred
/* 83823*/              OPC_CheckChild7Type, MVT::v4i1,
/* 83825*/              OPC_CheckType, MVT::v4i32,
/* 83827*/              OPC_EmitMergeInputChains1_0,
/* 83828*/              OPC_EmitInteger, MVT::i32, 1, 
/* 83831*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHS32_rq_u), 0|OPFL_Chain,
                            MVT::v4i32, 4/*#Ops*/, 1, 2, 4, 3, 
                        // Src: (intrinsic_w_chain:{ *:[v4i32] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                        // Dst: (MVE_VLDRHS32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 83841*/            0, /*End of Scope*/
/* 83842*/          /*Scope*/ 52, /*->83895*/
/* 83843*/            OPC_CheckInteger, 1, 
/* 83845*/            OPC_MoveParent,
/* 83846*/            OPC_MoveChild6,
/* 83847*/            OPC_Scope, 22, /*->83871*/ // 2 children in Scope
/* 83849*/              OPC_CheckInteger, 1, 
/* 83851*/              OPC_MoveParent,
/* 83852*/              OPC_RecordChild7, // #3 = $pred
/* 83853*/              OPC_CheckChild7Type, MVT::v4i1,
/* 83855*/              OPC_CheckType, MVT::v4i32,
/* 83857*/              OPC_EmitMergeInputChains1_0,
/* 83858*/              OPC_EmitInteger, MVT::i32, 1, 
/* 83861*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU32_rq), 0|OPFL_Chain,
                            MVT::v4i32, 4/*#Ops*/, 1, 2, 4, 3, 
                        // Src: (intrinsic_w_chain:{ *:[v4i32] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                        // Dst: (MVE_VLDRHU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 83871*/            /*Scope*/ 22, /*->83894*/
/* 83872*/              OPC_CheckInteger, 0, 
/* 83874*/              OPC_MoveParent,
/* 83875*/              OPC_RecordChild7, // #3 = $pred
/* 83876*/              OPC_CheckChild7Type, MVT::v4i1,
/* 83878*/              OPC_CheckType, MVT::v4i32,
/* 83880*/              OPC_EmitMergeInputChains1_0,
/* 83881*/              OPC_EmitInteger, MVT::i32, 1, 
/* 83884*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHS32_rq), 0|OPFL_Chain,
                            MVT::v4i32, 4/*#Ops*/, 1, 2, 4, 3, 
                        // Src: (intrinsic_w_chain:{ *:[v4i32] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 16:{ *:[i32] }, 1:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                        // Dst: (MVE_VLDRHS32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 83894*/            0, /*End of Scope*/
/* 83895*/          0, /*End of Scope*/
/* 83896*/        /*Scope*/ 55|128,1/*183*/, /*->84081*/
/* 83898*/          OPC_CheckChild4Integer, 32, 
/* 83900*/          OPC_MoveChild5,
/* 83901*/          OPC_Scope, 88, /*->83991*/ // 2 children in Scope
/* 83903*/            OPC_CheckInteger, 0, 
/* 83905*/            OPC_MoveParent,
/* 83906*/            OPC_MoveChild6,
/* 83907*/            OPC_Scope, 40, /*->83949*/ // 2 children in Scope
/* 83909*/              OPC_CheckInteger, 0, 
/* 83911*/              OPC_MoveParent,
/* 83912*/              OPC_RecordChild7, // #3 = $pred
/* 83913*/              OPC_CheckChild7Type, MVT::v4i1,
/* 83915*/              OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->83932
/* 83918*/                OPC_EmitMergeInputChains1_0,
/* 83919*/                OPC_EmitInteger, MVT::i32, 1, 
/* 83922*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq_u), 0|OPFL_Chain,
                              MVT::v4i32, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v4i32] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 83932*/              /*SwitchType*/ 14, MVT::v4f32,// ->83948
/* 83934*/                OPC_EmitMergeInputChains1_0,
/* 83935*/                OPC_EmitInteger, MVT::i32, 1, 
/* 83938*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq_u), 0|OPFL_Chain,
                              MVT::v4f32, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v4f32] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq_u:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 83948*/              0, // EndSwitchType
/* 83949*/            /*Scope*/ 40, /*->83990*/
/* 83950*/              OPC_CheckInteger, 1, 
/* 83952*/              OPC_MoveParent,
/* 83953*/              OPC_RecordChild7, // #3 = $pred
/* 83954*/              OPC_CheckChild7Type, MVT::v4i1,
/* 83956*/              OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->83973
/* 83959*/                OPC_EmitMergeInputChains1_0,
/* 83960*/                OPC_EmitInteger, MVT::i32, 1, 
/* 83963*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq_u), 0|OPFL_Chain,
                              MVT::v4i32, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v4i32] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq_u:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 83973*/              /*SwitchType*/ 14, MVT::v4f32,// ->83989
/* 83975*/                OPC_EmitMergeInputChains1_0,
/* 83976*/                OPC_EmitInteger, MVT::i32, 1, 
/* 83979*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq_u), 0|OPFL_Chain,
                              MVT::v4f32, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v4f32] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq_u:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 83989*/              0, // EndSwitchType
/* 83990*/            0, /*End of Scope*/
/* 83991*/          /*Scope*/ 88, /*->84080*/
/* 83992*/            OPC_CheckInteger, 2, 
/* 83994*/            OPC_MoveParent,
/* 83995*/            OPC_MoveChild6,
/* 83996*/            OPC_Scope, 40, /*->84038*/ // 2 children in Scope
/* 83998*/              OPC_CheckInteger, 0, 
/* 84000*/              OPC_MoveParent,
/* 84001*/              OPC_RecordChild7, // #3 = $pred
/* 84002*/              OPC_CheckChild7Type, MVT::v4i1,
/* 84004*/              OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->84021
/* 84007*/                OPC_EmitMergeInputChains1_0,
/* 84008*/                OPC_EmitInteger, MVT::i32, 1, 
/* 84011*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq), 0|OPFL_Chain,
                              MVT::v4i32, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v4i32] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84021*/              /*SwitchType*/ 14, MVT::v4f32,// ->84037
/* 84023*/                OPC_EmitMergeInputChains1_0,
/* 84024*/                OPC_EmitInteger, MVT::i32, 1, 
/* 84027*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq), 0|OPFL_Chain,
                              MVT::v4f32, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v4f32] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84037*/              0, // EndSwitchType
/* 84038*/            /*Scope*/ 40, /*->84079*/
/* 84039*/              OPC_CheckInteger, 1, 
/* 84041*/              OPC_MoveParent,
/* 84042*/              OPC_RecordChild7, // #3 = $pred
/* 84043*/              OPC_CheckChild7Type, MVT::v4i1,
/* 84045*/              OPC_SwitchType /*2 cases */, 14, MVT::v4i32,// ->84062
/* 84048*/                OPC_EmitMergeInputChains1_0,
/* 84049*/                OPC_EmitInteger, MVT::i32, 1, 
/* 84052*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq), 0|OPFL_Chain,
                              MVT::v4i32, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v4i32] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq:{ *:[v4i32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84062*/              /*SwitchType*/ 14, MVT::v4f32,// ->84078
/* 84064*/                OPC_EmitMergeInputChains1_0,
/* 84065*/                OPC_EmitInteger, MVT::i32, 1, 
/* 84068*/                OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_rq), 0|OPFL_Chain,
                              MVT::v4f32, 4/*#Ops*/, 1, 2, 4, 3, 
                          // Src: (intrinsic_w_chain:{ *:[v4f32] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 32:{ *:[i32] }, 2:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                          // Dst: (MVE_VLDRWU32_rq:{ *:[v4f32] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v4i32] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84078*/              0, // EndSwitchType
/* 84079*/            0, /*End of Scope*/
/* 84080*/          0, /*End of Scope*/
/* 84081*/        0, /*End of Scope*/
/* 84082*/      /*Scope*/ 113, /*->84196*/
/* 84083*/        OPC_CheckChild3Type, MVT::v2i64,
/* 84085*/        OPC_CheckChild4Integer, 64, 
/* 84087*/        OPC_MoveChild5,
/* 84088*/        OPC_Scope, 52, /*->84142*/ // 2 children in Scope
/* 84090*/          OPC_CheckInteger, 0, 
/* 84092*/          OPC_MoveParent,
/* 84093*/          OPC_MoveChild6,
/* 84094*/          OPC_Scope, 22, /*->84118*/ // 2 children in Scope
/* 84096*/            OPC_CheckInteger, 0, 
/* 84098*/            OPC_MoveParent,
/* 84099*/            OPC_RecordChild7, // #3 = $pred
/* 84100*/            OPC_CheckChild7Type, MVT::v4i1,
/* 84102*/            OPC_CheckType, MVT::v2i64,
/* 84104*/            OPC_EmitMergeInputChains1_0,
/* 84105*/            OPC_EmitInteger, MVT::i32, 1, 
/* 84108*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRDU64_rq_u), 0|OPFL_Chain,
                          MVT::v2i64, 4/*#Ops*/, 1, 2, 4, 3, 
                      // Src: (intrinsic_w_chain:{ *:[v2i64] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 0:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                      // Dst: (MVE_VLDRDU64_rq_u:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84118*/          /*Scope*/ 22, /*->84141*/
/* 84119*/            OPC_CheckInteger, 1, 
/* 84121*/            OPC_MoveParent,
/* 84122*/            OPC_RecordChild7, // #3 = $pred
/* 84123*/            OPC_CheckChild7Type, MVT::v4i1,
/* 84125*/            OPC_CheckType, MVT::v2i64,
/* 84127*/            OPC_EmitMergeInputChains1_0,
/* 84128*/            OPC_EmitInteger, MVT::i32, 1, 
/* 84131*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRDU64_rq_u), 0|OPFL_Chain,
                          MVT::v2i64, 4/*#Ops*/, 1, 2, 4, 3, 
                      // Src: (intrinsic_w_chain:{ *:[v2i64] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 0:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                      // Dst: (MVE_VLDRDU64_rq_u:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84141*/          0, /*End of Scope*/
/* 84142*/        /*Scope*/ 52, /*->84195*/
/* 84143*/          OPC_CheckInteger, 3, 
/* 84145*/          OPC_MoveParent,
/* 84146*/          OPC_MoveChild6,
/* 84147*/          OPC_Scope, 22, /*->84171*/ // 2 children in Scope
/* 84149*/            OPC_CheckInteger, 0, 
/* 84151*/            OPC_MoveParent,
/* 84152*/            OPC_RecordChild7, // #3 = $pred
/* 84153*/            OPC_CheckChild7Type, MVT::v4i1,
/* 84155*/            OPC_CheckType, MVT::v2i64,
/* 84157*/            OPC_EmitMergeInputChains1_0,
/* 84158*/            OPC_EmitInteger, MVT::i32, 1, 
/* 84161*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRDU64_rq), 0|OPFL_Chain,
                          MVT::v2i64, 4/*#Ops*/, 1, 2, 4, 3, 
                      // Src: (intrinsic_w_chain:{ *:[v2i64] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 3:{ *:[i32] }, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                      // Dst: (MVE_VLDRDU64_rq:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84171*/          /*Scope*/ 22, /*->84194*/
/* 84172*/            OPC_CheckInteger, 1, 
/* 84174*/            OPC_MoveParent,
/* 84175*/            OPC_RecordChild7, // #3 = $pred
/* 84176*/            OPC_CheckChild7Type, MVT::v4i1,
/* 84178*/            OPC_CheckType, MVT::v2i64,
/* 84180*/            OPC_EmitMergeInputChains1_0,
/* 84181*/            OPC_EmitInteger, MVT::i32, 1, 
/* 84184*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRDU64_rq), 0|OPFL_Chain,
                          MVT::v2i64, 4/*#Ops*/, 1, 2, 4, 3, 
                      // Src: (intrinsic_w_chain:{ *:[v2i64] } 1606:{ *:[iPTR] }, GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 64:{ *:[i32] }, 3:{ *:[i32] }, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred) - Complexity = 23
                      // Dst: (MVE_VLDRDU64_rq:{ *:[v2i64] } GPR:{ *:[i32] }:$base, MQPR:{ *:[v2i64] }:$offsets, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84194*/          0, /*End of Scope*/
/* 84195*/        0, /*End of Scope*/
/* 84196*/      0, /*End of Scope*/
/* 84197*/    /*Scope*/ 112, /*->84310*/
/* 84198*/      OPC_CheckChild1Integer, 65|128,12/*1601*/, 
/* 84201*/      OPC_RecordChild2, // #1 = $addr
/* 84202*/      OPC_Scope, 52, /*->84256*/ // 2 children in Scope
/* 84204*/        OPC_CheckChild2Type, MVT::v4i32,
/* 84206*/        OPC_RecordChild3, // #2 = $offset
/* 84207*/        OPC_MoveChild3,
/* 84208*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84211*/        OPC_MoveParent,
/* 84212*/        OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->84234
/* 84215*/          OPC_EmitMergeInputChains1_0,
/* 84216*/          OPC_EmitConvertToTarget, 2,
/* 84218*/          OPC_EmitInteger, MVT::i32, 0, 
/* 84221*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84224*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_qi), 0|OPFL_Chain,
                        MVT::v4i32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[v4i32] } 1601:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset) - Complexity = 11
                    // Dst: (MVE_VLDRWU32_qi:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
/* 84234*/        /*SwitchType*/ 19, MVT::v4f32,// ->84255
/* 84236*/          OPC_EmitMergeInputChains1_0,
/* 84237*/          OPC_EmitConvertToTarget, 2,
/* 84239*/          OPC_EmitInteger, MVT::i32, 0, 
/* 84242*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84245*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_qi), 0|OPFL_Chain,
                        MVT::v4f32, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[v4f32] } 1601:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset) - Complexity = 11
                    // Dst: (MVE_VLDRWU32_qi:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
/* 84255*/        0, // EndSwitchType
/* 84256*/      /*Scope*/ 52, /*->84309*/
/* 84257*/        OPC_CheckChild2Type, MVT::v2i64,
/* 84259*/        OPC_RecordChild3, // #2 = $offset
/* 84260*/        OPC_MoveChild3,
/* 84261*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84264*/        OPC_MoveParent,
/* 84265*/        OPC_SwitchType /*2 cases */, 19, MVT::v2i64,// ->84287
/* 84268*/          OPC_EmitMergeInputChains1_0,
/* 84269*/          OPC_EmitConvertToTarget, 2,
/* 84271*/          OPC_EmitInteger, MVT::i32, 0, 
/* 84274*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84277*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRDU64_qi), 0|OPFL_Chain,
                        MVT::v2i64, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[v2i64] } 1601:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset) - Complexity = 11
                    // Dst: (MVE_VLDRDU64_qi:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
/* 84287*/        /*SwitchType*/ 19, MVT::v2f64,// ->84308
/* 84289*/          OPC_EmitMergeInputChains1_0,
/* 84290*/          OPC_EmitConvertToTarget, 2,
/* 84292*/          OPC_EmitInteger, MVT::i32, 0, 
/* 84295*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84298*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRDU64_qi), 0|OPFL_Chain,
                        MVT::v2f64, 4/*#Ops*/, 1, 3, 4, 5, 
                    // Src: (intrinsic_w_chain:{ *:[v2f64] } 1601:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset) - Complexity = 11
                    // Dst: (MVE_VLDRDU64_qi:{ *:[v2f64] } MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
/* 84308*/        0, // EndSwitchType
/* 84309*/      0, /*End of Scope*/
/* 84310*/    /*Scope*/ 106, /*->84417*/
/* 84311*/      OPC_CheckChild1Integer, 66|128,12/*1602*/, 
/* 84314*/      OPC_RecordChild2, // #1 = $addr
/* 84315*/      OPC_Scope, 49, /*->84366*/ // 2 children in Scope
/* 84317*/        OPC_CheckChild2Type, MVT::v4i32,
/* 84319*/        OPC_RecordChild3, // #2 = $offset
/* 84320*/        OPC_MoveChild3,
/* 84321*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84324*/        OPC_MoveParent,
/* 84325*/        OPC_RecordChild4, // #3 = $pred
/* 84326*/        OPC_CheckChild4Type, MVT::v4i1,
/* 84328*/        OPC_SwitchType /*2 cases */, 16, MVT::v4i32,// ->84347
/* 84331*/          OPC_EmitMergeInputChains1_0,
/* 84332*/          OPC_EmitConvertToTarget, 2,
/* 84334*/          OPC_EmitInteger, MVT::i32, 1, 
/* 84337*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_qi), 0|OPFL_Chain,
                        MVT::v4i32, 4/*#Ops*/, 1, 4, 5, 3, 
                    // Src: (intrinsic_w_chain:{ *:[v4i32] } 1602:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, VCCR:{ *:[v4i1] }:$pred) - Complexity = 11
                    // Dst: (MVE_VLDRWU32_qi:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84347*/        /*SwitchType*/ 16, MVT::v4f32,// ->84365
/* 84349*/          OPC_EmitMergeInputChains1_0,
/* 84350*/          OPC_EmitConvertToTarget, 2,
/* 84352*/          OPC_EmitInteger, MVT::i32, 1, 
/* 84355*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32_qi), 0|OPFL_Chain,
                        MVT::v4f32, 4/*#Ops*/, 1, 4, 5, 3, 
                    // Src: (intrinsic_w_chain:{ *:[v4f32] } 1602:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, VCCR:{ *:[v4i1] }:$pred) - Complexity = 11
                    // Dst: (MVE_VLDRWU32_qi:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84365*/        0, // EndSwitchType
/* 84366*/      /*Scope*/ 49, /*->84416*/
/* 84367*/        OPC_CheckChild2Type, MVT::v2i64,
/* 84369*/        OPC_RecordChild3, // #2 = $offset
/* 84370*/        OPC_MoveChild3,
/* 84371*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84374*/        OPC_MoveParent,
/* 84375*/        OPC_RecordChild4, // #3 = $pred
/* 84376*/        OPC_CheckChild4Type, MVT::v4i1,
/* 84378*/        OPC_SwitchType /*2 cases */, 16, MVT::v2i64,// ->84397
/* 84381*/          OPC_EmitMergeInputChains1_0,
/* 84382*/          OPC_EmitConvertToTarget, 2,
/* 84384*/          OPC_EmitInteger, MVT::i32, 1, 
/* 84387*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRDU64_qi), 0|OPFL_Chain,
                        MVT::v2i64, 4/*#Ops*/, 1, 4, 5, 3, 
                    // Src: (intrinsic_w_chain:{ *:[v2i64] } 1602:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, VCCR:{ *:[v4i1] }:$pred) - Complexity = 11
                    // Dst: (MVE_VLDRDU64_qi:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84397*/        /*SwitchType*/ 16, MVT::v2f64,// ->84415
/* 84399*/          OPC_EmitMergeInputChains1_0,
/* 84400*/          OPC_EmitConvertToTarget, 2,
/* 84402*/          OPC_EmitInteger, MVT::i32, 1, 
/* 84405*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRDU64_qi), 0|OPFL_Chain,
                        MVT::v2f64, 4/*#Ops*/, 1, 4, 5, 3, 
                    // Src: (intrinsic_w_chain:{ *:[v2f64] } 1602:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, VCCR:{ *:[v4i1] }:$pred) - Complexity = 11
                    // Dst: (MVE_VLDRDU64_qi:{ *:[v2f64] } MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84415*/        0, // EndSwitchType
/* 84416*/      0, /*End of Scope*/
/* 84417*/    /*Scope*/ 126, /*->84544*/
/* 84418*/      OPC_CheckChild1Integer, 106|128,12/*1642*/, 
/* 84421*/      OPC_RecordChild2, // #1 = $addr
/* 84422*/      OPC_Scope, 59, /*->84483*/ // 2 children in Scope
/* 84424*/        OPC_CheckChild2Type, MVT::v4i32,
/* 84426*/        OPC_RecordChild3, // #2 = $offset
/* 84427*/        OPC_MoveChild3,
/* 84428*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84431*/        OPC_MoveParent,
/* 84432*/        OPC_RecordChild4, // #3 = $data
/* 84433*/        OPC_CheckType, MVT::v4i32,
/* 84435*/        OPC_Scope, 22, /*->84459*/ // 2 children in Scope
/* 84437*/          OPC_CheckChild4Type, MVT::v4i32,
/* 84439*/          OPC_EmitMergeInputChains1_0,
/* 84440*/          OPC_EmitConvertToTarget, 2,
/* 84442*/          OPC_EmitInteger, MVT::i32, 0, 
/* 84445*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84448*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRW32_qi_pre), 0|OPFL_Chain,
                        MVT::v4i32, 5/*#Ops*/, 3, 1, 4, 5, 6, 
                    // Src: (intrinsic_w_chain:{ *:[v4i32] } 1642:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4i32] }:$data) - Complexity = 11
                    // Dst: (MVE_VSTRW32_qi_pre:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
/* 84459*/        /*Scope*/ 22, /*->84482*/
/* 84460*/          OPC_CheckChild4Type, MVT::v4f32,
/* 84462*/          OPC_EmitMergeInputChains1_0,
/* 84463*/          OPC_EmitConvertToTarget, 2,
/* 84465*/          OPC_EmitInteger, MVT::i32, 0, 
/* 84468*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84471*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRW32_qi_pre), 0|OPFL_Chain,
                        MVT::v4i32, 5/*#Ops*/, 3, 1, 4, 5, 6, 
                    // Src: (intrinsic_w_chain:{ *:[v4i32] } 1642:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4f32] }:$data) - Complexity = 11
                    // Dst: (MVE_VSTRW32_qi_pre:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset)
/* 84482*/        0, /*End of Scope*/
/* 84483*/      /*Scope*/ 59, /*->84543*/
/* 84484*/        OPC_CheckChild2Type, MVT::v2i64,
/* 84486*/        OPC_RecordChild3, // #2 = $offset
/* 84487*/        OPC_MoveChild3,
/* 84488*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84491*/        OPC_MoveParent,
/* 84492*/        OPC_RecordChild4, // #3 = $data
/* 84493*/        OPC_CheckType, MVT::v2i64,
/* 84495*/        OPC_Scope, 22, /*->84519*/ // 2 children in Scope
/* 84497*/          OPC_CheckChild4Type, MVT::v2i64,
/* 84499*/          OPC_EmitMergeInputChains1_0,
/* 84500*/          OPC_EmitConvertToTarget, 2,
/* 84502*/          OPC_EmitInteger, MVT::i32, 0, 
/* 84505*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84508*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRD64_qi_pre), 0|OPFL_Chain,
                        MVT::v2i64, 5/*#Ops*/, 3, 1, 4, 5, 6, 
                    // Src: (intrinsic_w_chain:{ *:[v2i64] } 1642:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2i64] }:$data) - Complexity = 11
                    // Dst: (MVE_VSTRD64_qi_pre:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
/* 84519*/        /*Scope*/ 22, /*->84542*/
/* 84520*/          OPC_CheckChild4Type, MVT::v2f64,
/* 84522*/          OPC_EmitMergeInputChains1_0,
/* 84523*/          OPC_EmitConvertToTarget, 2,
/* 84525*/          OPC_EmitInteger, MVT::i32, 0, 
/* 84528*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84531*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRD64_qi_pre), 0|OPFL_Chain,
                        MVT::v2i64, 5/*#Ops*/, 3, 1, 4, 5, 6, 
                    // Src: (intrinsic_w_chain:{ *:[v2i64] } 1642:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2f64] }:$data) - Complexity = 11
                    // Dst: (MVE_VSTRD64_qi_pre:{ *:[v2i64] } MQPR:{ *:[v2f64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset)
/* 84542*/        0, /*End of Scope*/
/* 84543*/      0, /*End of Scope*/
/* 84544*/    /*Scope*/ 126, /*->84671*/
/* 84545*/      OPC_CheckChild1Integer, 107|128,12/*1643*/, 
/* 84548*/      OPC_RecordChild2, // #1 = $addr
/* 84549*/      OPC_Scope, 59, /*->84610*/ // 2 children in Scope
/* 84551*/        OPC_CheckChild2Type, MVT::v4i32,
/* 84553*/        OPC_RecordChild3, // #2 = $offset
/* 84554*/        OPC_MoveChild3,
/* 84555*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84558*/        OPC_MoveParent,
/* 84559*/        OPC_RecordChild4, // #3 = $data
/* 84560*/        OPC_CheckType, MVT::v4i32,
/* 84562*/        OPC_Scope, 22, /*->84586*/ // 2 children in Scope
/* 84564*/          OPC_CheckChild4Type, MVT::v4i32,
/* 84566*/          OPC_RecordChild5, // #4 = $pred
/* 84567*/          OPC_CheckChild5Type, MVT::v4i1,
/* 84569*/          OPC_EmitMergeInputChains1_0,
/* 84570*/          OPC_EmitConvertToTarget, 2,
/* 84572*/          OPC_EmitInteger, MVT::i32, 1, 
/* 84575*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRW32_qi_pre), 0|OPFL_Chain,
                        MVT::v4i32, 5/*#Ops*/, 3, 1, 5, 6, 4, 
                    // Src: (intrinsic_w_chain:{ *:[v4i32] } 1643:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4i32] }:$data, VCCR:{ *:[v4i1] }:$pred) - Complexity = 11
                    // Dst: (MVE_VSTRW32_qi_pre:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84586*/        /*Scope*/ 22, /*->84609*/
/* 84587*/          OPC_CheckChild4Type, MVT::v4f32,
/* 84589*/          OPC_RecordChild5, // #4 = $pred
/* 84590*/          OPC_CheckChild5Type, MVT::v4i1,
/* 84592*/          OPC_EmitMergeInputChains1_0,
/* 84593*/          OPC_EmitConvertToTarget, 2,
/* 84595*/          OPC_EmitInteger, MVT::i32, 1, 
/* 84598*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRW32_qi_pre), 0|OPFL_Chain,
                        MVT::v4i32, 5/*#Ops*/, 3, 1, 5, 6, 4, 
                    // Src: (intrinsic_w_chain:{ *:[v4i32] } 1643:{ *:[iPTR] }, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v4f32] }:$data, VCCR:{ *:[v4i1] }:$pred) - Complexity = 11
                    // Dst: (MVE_VSTRW32_qi_pre:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$data, MQPR:{ *:[v4i32] }:$addr, (imm:{ *:[i32] }):$offset, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84609*/        0, /*End of Scope*/
/* 84610*/      /*Scope*/ 59, /*->84670*/
/* 84611*/        OPC_CheckChild2Type, MVT::v2i64,
/* 84613*/        OPC_RecordChild3, // #2 = $offset
/* 84614*/        OPC_MoveChild3,
/* 84615*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84618*/        OPC_MoveParent,
/* 84619*/        OPC_RecordChild4, // #3 = $data
/* 84620*/        OPC_CheckType, MVT::v2i64,
/* 84622*/        OPC_Scope, 22, /*->84646*/ // 2 children in Scope
/* 84624*/          OPC_CheckChild4Type, MVT::v2i64,
/* 84626*/          OPC_RecordChild5, // #4 = $pred
/* 84627*/          OPC_CheckChild5Type, MVT::v4i1,
/* 84629*/          OPC_EmitMergeInputChains1_0,
/* 84630*/          OPC_EmitConvertToTarget, 2,
/* 84632*/          OPC_EmitInteger, MVT::i32, 1, 
/* 84635*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRD64_qi_pre), 0|OPFL_Chain,
                        MVT::v2i64, 5/*#Ops*/, 3, 1, 5, 6, 4, 
                    // Src: (intrinsic_w_chain:{ *:[v2i64] } 1643:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2i64] }:$data, VCCR:{ *:[v4i1] }:$pred) - Complexity = 11
                    // Dst: (MVE_VSTRD64_qi_pre:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84646*/        /*Scope*/ 22, /*->84669*/
/* 84647*/          OPC_CheckChild4Type, MVT::v2f64,
/* 84649*/          OPC_RecordChild5, // #4 = $pred
/* 84650*/          OPC_CheckChild5Type, MVT::v4i1,
/* 84652*/          OPC_EmitMergeInputChains1_0,
/* 84653*/          OPC_EmitConvertToTarget, 2,
/* 84655*/          OPC_EmitInteger, MVT::i32, 1, 
/* 84658*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRD64_qi_pre), 0|OPFL_Chain,
                        MVT::v2i64, 5/*#Ops*/, 3, 1, 5, 6, 4, 
                    // Src: (intrinsic_w_chain:{ *:[v2i64] } 1643:{ *:[iPTR] }, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, MQPR:{ *:[v2f64] }:$data, VCCR:{ *:[v4i1] }:$pred) - Complexity = 11
                    // Dst: (MVE_VSTRD64_qi_pre:{ *:[v2i64] } MQPR:{ *:[v2f64] }:$data, MQPR:{ *:[v2i64] }:$addr, (imm:{ *:[i32] }):$offset, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 84669*/        0, /*End of Scope*/
/* 84670*/      0, /*End of Scope*/
/* 84671*/    0, /*End of Scope*/
/* 84672*/  /*SwitchOpcode*/ 125, TARGET_VAL(ARMISD::BR_JT),// ->84800
/* 84675*/    OPC_RecordNode, // #0 = 'ARMbrjt' chained node
/* 84676*/    OPC_Scope, 87, /*->84765*/ // 2 children in Scope
/* 84678*/      OPC_MoveChild1,
/* 84679*/      OPC_SwitchOpcode /*2 cases */, 56, TARGET_VAL(ISD::LOAD),// ->84739
/* 84683*/        OPC_RecordMemRef,
/* 84684*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 84685*/        OPC_CheckFoldableChainNode,
/* 84686*/        OPC_RecordChild1, // #2 = $target
/* 84687*/        OPC_CheckChild1Type, MVT::i32,
/* 84689*/        OPC_CheckPredicate, 37, // Predicate_unindexedload
/* 84691*/        OPC_CheckPredicate, 60, // Predicate_load
/* 84693*/        OPC_CheckType, MVT::i32,
/* 84695*/        OPC_MoveParent,
/* 84696*/        OPC_RecordChild2, // #3 = $jt
/* 84697*/        OPC_MoveChild2,
/* 84698*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
/* 84701*/        OPC_MoveParent,
/* 84702*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 84704*/        OPC_Scope, 16, /*->84722*/ // 2 children in Scope
/* 84706*/          OPC_CheckComplexPat, /*CP*/19, /*#*/2, // SelectLdStSOReg:$target #4 #5 #6
/* 84709*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 84713*/          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)
/* 84722*/        /*Scope*/ 15, /*->84738*/
/* 84723*/          OPC_CheckComplexPat, /*CP*/23, /*#*/2, // SelectAddrModeImm12:$target #4 #5
/* 84726*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 84730*/          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)
/* 84738*/        0, /*End of Scope*/
/* 84739*/      /*SwitchOpcode*/ 22, TARGET_VAL(ISD::ADD),// ->84764
/* 84742*/        OPC_RecordChild0, // #1 = $target
/* 84743*/        OPC_RecordChild1, // #2 = $idx
/* 84744*/        OPC_CheckType, MVT::i32,
/* 84746*/        OPC_MoveParent,
/* 84747*/        OPC_RecordChild2, // #3 = $jt
/* 84748*/        OPC_MoveChild2,
/* 84749*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
/* 84752*/        OPC_MoveParent,
/* 84753*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 84755*/        OPC_EmitMergeInputChains1_0,
/* 84756*/        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)
/* 84764*/      0, // EndSwitchOpcode
/* 84765*/    /*Scope*/ 33, /*->84799*/
/* 84766*/      OPC_RecordChild1, // #1 = $target
/* 84767*/      OPC_CheckChild1Type, MVT::i32,
/* 84769*/      OPC_RecordChild2, // #2 = $jt
/* 84770*/      OPC_MoveChild2,
/* 84771*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
/* 84774*/      OPC_MoveParent,
/* 84775*/      OPC_Scope, 10, /*->84787*/ // 2 children in Scope
/* 84777*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 84779*/        OPC_EmitMergeInputChains1_0,
/* 84780*/        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)
/* 84787*/      /*Scope*/ 10, /*->84798*/
/* 84788*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 84790*/        OPC_EmitMergeInputChains1_0,
/* 84791*/        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)
/* 84798*/      0, /*End of Scope*/
/* 84799*/    0, /*End of Scope*/
/* 84800*/  /*SwitchOpcode*/ 42|128,14/*1834*/, TARGET_VAL(ISD::XOR),// ->86638
/* 84804*/    OPC_Scope, 74|128,1/*202*/, /*->85009*/ // 11 children in Scope
/* 84807*/      OPC_RecordChild0, // #0 = $shift
/* 84808*/      OPC_Scope, 94, /*->84904*/ // 3 children in Scope
/* 84810*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 84821*/        OPC_CheckType, MVT::i32,
/* 84823*/        OPC_Scope, 26, /*->84851*/ // 3 children in Scope
/* 84825*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 84827*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #1 #2 #3
/* 84830*/          OPC_EmitInteger, MVT::i32, 14, 
/* 84833*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84836*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84839*/          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)
/* 84851*/        /*Scope*/ 25, /*->84877*/
/* 84852*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 84854*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #1 #2
/* 84857*/          OPC_EmitInteger, MVT::i32, 14, 
/* 84860*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84863*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84866*/          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)
/* 84877*/        /*Scope*/ 25, /*->84903*/
/* 84878*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 84880*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #1 #2
/* 84883*/          OPC_EmitInteger, MVT::i32, 14, 
/* 84886*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84889*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84892*/          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)
/* 84903*/        0, /*End of Scope*/
/* 84904*/      /*Scope*/ 59, /*->84964*/
/* 84905*/        OPC_RecordChild1, // #1 = $shift
/* 84906*/        OPC_CheckType, MVT::i32,
/* 84908*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 84910*/        OPC_Scope, 25, /*->84937*/ // 2 children in Scope
/* 84912*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 84915*/          OPC_EmitInteger, MVT::i32, 14, 
/* 84918*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84921*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84924*/          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)
/* 84937*/        /*Scope*/ 25, /*->84963*/
/* 84938*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 84941*/          OPC_EmitInteger, MVT::i32, 14, 
/* 84944*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84947*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84950*/          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)
/* 84963*/        0, /*End of Scope*/
/* 84964*/      /*Scope*/ 43, /*->85008*/
/* 84965*/        OPC_MoveChild0,
/* 84966*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84969*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 84971*/        OPC_MoveParent,
/* 84972*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 84983*/        OPC_CheckType, MVT::i32,
/* 84985*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 84987*/        OPC_EmitConvertToTarget, 0,
/* 84989*/        OPC_EmitInteger, MVT::i32, 14, 
/* 84992*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84995*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 84998*/        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)
/* 85008*/      0, /*End of Scope*/
/* 85009*/    /*Scope*/ 44, /*->85054*/
/* 85010*/      OPC_CheckChild0Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 85021*/      OPC_RecordChild1, // #0 = $imm
/* 85022*/      OPC_MoveChild1,
/* 85023*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 85026*/      OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 85028*/      OPC_MoveParent,
/* 85029*/      OPC_CheckType, MVT::i32,
/* 85031*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 85033*/      OPC_EmitConvertToTarget, 0,
/* 85035*/      OPC_EmitInteger, MVT::i32, 14, 
/* 85038*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85041*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85044*/      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)
/* 85054*/    /*Scope*/ 89|128,2/*345*/, /*->85401*/
/* 85056*/      OPC_RecordChild0, // #0 = $Rn
/* 85057*/      OPC_Scope, 113, /*->85172*/ // 3 children in Scope
/* 85059*/        OPC_RecordChild1, // #1 = $shift
/* 85060*/        OPC_CheckType, MVT::i32,
/* 85062*/        OPC_Scope, 26, /*->85090*/ // 4 children in Scope
/* 85064*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 85066*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 85069*/          OPC_EmitInteger, MVT::i32, 14, 
/* 85072*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85075*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85078*/          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)
/* 85090*/        /*Scope*/ 26, /*->85117*/
/* 85091*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 85093*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 85096*/          OPC_EmitInteger, MVT::i32, 14, 
/* 85099*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85102*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85105*/          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)
/* 85117*/        /*Scope*/ 26, /*->85144*/
/* 85118*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 85120*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 85123*/          OPC_EmitInteger, MVT::i32, 14, 
/* 85126*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85129*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85132*/          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)
/* 85144*/        /*Scope*/ 26, /*->85171*/
/* 85145*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 85147*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 85150*/          OPC_EmitInteger, MVT::i32, 14, 
/* 85153*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85156*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85159*/          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)
/* 85171*/        0, /*End of Scope*/
/* 85172*/      /*Scope*/ 81, /*->85254*/
/* 85173*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 85184*/        OPC_CheckType, MVT::i32,
/* 85186*/        OPC_Scope, 21, /*->85209*/ // 3 children in Scope
/* 85188*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 85190*/          OPC_EmitInteger, MVT::i32, 14, 
/* 85193*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85196*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85199*/          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)
/* 85209*/        /*Scope*/ 21, /*->85231*/
/* 85210*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 85212*/          OPC_EmitInteger, MVT::i32, 14, 
/* 85215*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85218*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85221*/          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)
/* 85231*/        /*Scope*/ 21, /*->85253*/
/* 85232*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 85234*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 85237*/          OPC_EmitInteger, MVT::i32, 14, 
/* 85240*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85243*/          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)
/* 85253*/        0, /*End of Scope*/
/* 85254*/      /*Scope*/ 16|128,1/*144*/, /*->85400*/
/* 85256*/        OPC_RecordChild1, // #1 = $imm
/* 85257*/        OPC_Scope, 66, /*->85325*/ // 2 children in Scope
/* 85259*/          OPC_MoveChild1,
/* 85260*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 85263*/          OPC_Scope, 29, /*->85294*/ // 2 children in Scope
/* 85265*/            OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 85267*/            OPC_MoveParent,
/* 85268*/            OPC_CheckType, MVT::i32,
/* 85270*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 85272*/            OPC_EmitConvertToTarget, 1,
/* 85274*/            OPC_EmitInteger, MVT::i32, 14, 
/* 85277*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85280*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85283*/            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)
/* 85294*/          /*Scope*/ 29, /*->85324*/
/* 85295*/            OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 85297*/            OPC_MoveParent,
/* 85298*/            OPC_CheckType, MVT::i32,
/* 85300*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 85302*/            OPC_EmitConvertToTarget, 1,
/* 85304*/            OPC_EmitInteger, MVT::i32, 14, 
/* 85307*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85310*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85313*/            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)
/* 85324*/          0, /*End of Scope*/
/* 85325*/        /*Scope*/ 73, /*->85399*/
/* 85326*/          OPC_CheckType, MVT::i32,
/* 85328*/          OPC_Scope, 22, /*->85352*/ // 3 children in Scope
/* 85330*/            OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 85332*/            OPC_EmitInteger, MVT::i32, 14, 
/* 85335*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85338*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85341*/            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)
/* 85352*/          /*Scope*/ 22, /*->85375*/
/* 85353*/            OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 85355*/            OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 85358*/            OPC_EmitInteger, MVT::i32, 14, 
/* 85361*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85364*/            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)
/* 85375*/          /*Scope*/ 22, /*->85398*/
/* 85376*/            OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 85378*/            OPC_EmitInteger, MVT::i32, 14, 
/* 85381*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85384*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85387*/            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)
/* 85398*/          0, /*End of Scope*/
/* 85399*/        0, /*End of Scope*/
/* 85400*/      0, /*End of Scope*/
/* 85401*/    /*Scope*/ 2|128,3/*386*/, /*->85789*/
/* 85403*/      OPC_MoveChild0,
/* 85404*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85407*/      OPC_MoveChild0,
/* 85408*/      OPC_SwitchOpcode /*2 cases */, 42|128,1/*170*/, TARGET_VAL(ARMISD::VSHRsIMM),// ->85583
/* 85413*/        OPC_MoveChild0,
/* 85414*/        OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 85417*/        OPC_MoveChild0,
/* 85418*/        OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85421*/        OPC_RecordChild0, // #0 = $opA
/* 85422*/        OPC_MoveParent,
/* 85423*/        OPC_MoveChild1,
/* 85424*/        OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85427*/        OPC_RecordChild0, // #1 = $opB
/* 85428*/        OPC_MoveParent,
/* 85429*/        OPC_MoveParent,
/* 85430*/        OPC_CheckChild1Integer, 63, 
/* 85432*/        OPC_CheckType, MVT::v2i64,
/* 85434*/        OPC_MoveParent,
/* 85435*/        OPC_MoveParent,
/* 85436*/        OPC_MoveChild1,
/* 85437*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85440*/        OPC_MoveChild0,
/* 85441*/        OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 85444*/        OPC_MoveChild0,
/* 85445*/        OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::SUB),// ->85514
/* 85449*/          OPC_MoveChild0,
/* 85450*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85453*/          OPC_CheckChild0Same, 0,
/* 85455*/          OPC_MoveParent,
/* 85456*/          OPC_MoveChild1,
/* 85457*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85460*/          OPC_CheckChild0Same, 1,
/* 85462*/          OPC_MoveParent,
/* 85463*/          OPC_MoveParent,
/* 85464*/          OPC_MoveChild1,
/* 85465*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VSHRsIMM),
/* 85468*/          OPC_MoveChild0,
/* 85469*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 85472*/          OPC_MoveChild0,
/* 85473*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85476*/          OPC_CheckChild0Same, 0,
/* 85478*/          OPC_MoveParent,
/* 85479*/          OPC_MoveChild1,
/* 85480*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85483*/          OPC_CheckChild0Same, 1,
/* 85485*/          OPC_MoveParent,
/* 85486*/          OPC_MoveParent,
/* 85487*/          OPC_CheckChild1Integer, 63, 
/* 85489*/          OPC_MoveParent,
/* 85490*/          OPC_CheckType, MVT::v2i64,
/* 85492*/          OPC_MoveParent,
/* 85493*/          OPC_MoveParent,
/* 85494*/          OPC_CheckType, MVT::v4i32,
/* 85496*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85498*/          OPC_EmitInteger, MVT::i32, 14, 
/* 85501*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85504*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv2i64), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ARMvshrsImm:{ *:[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)), (ARMvshrsImm:{ *:[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)
/* 85514*/        /*SwitchOpcode*/ 65, TARGET_VAL(ARMISD::VSHRsIMM),// ->85582
/* 85517*/          OPC_MoveChild0,
/* 85518*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 85521*/          OPC_MoveChild0,
/* 85522*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85525*/          OPC_CheckChild0Same, 0,
/* 85527*/          OPC_MoveParent,
/* 85528*/          OPC_MoveChild1,
/* 85529*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85532*/          OPC_CheckChild0Same, 1,
/* 85534*/          OPC_MoveParent,
/* 85535*/          OPC_MoveParent,
/* 85536*/          OPC_CheckChild1Integer, 63, 
/* 85538*/          OPC_MoveParent,
/* 85539*/          OPC_MoveChild1,
/* 85540*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 85543*/          OPC_MoveChild0,
/* 85544*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85547*/          OPC_CheckChild0Same, 0,
/* 85549*/          OPC_MoveParent,
/* 85550*/          OPC_MoveChild1,
/* 85551*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85554*/          OPC_CheckChild0Same, 1,
/* 85556*/          OPC_MoveParent,
/* 85557*/          OPC_MoveParent,
/* 85558*/          OPC_CheckType, MVT::v2i64,
/* 85560*/          OPC_MoveParent,
/* 85561*/          OPC_MoveParent,
/* 85562*/          OPC_CheckType, MVT::v4i32,
/* 85564*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85566*/          OPC_EmitInteger, MVT::i32, 14, 
/* 85569*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85572*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv2i64), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ARMvshrsImm:{ *:[v2i64] } (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opB)), 63:{ *:[i32] })), (bitconvert:{ *:[v4i32] } (add:{ *:[v2i64] } (ARMvshrsImm:{ *:[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)
/* 85582*/        0, // EndSwitchOpcode
/* 85583*/      /*SwitchOpcode*/ 73|128,1/*201*/, TARGET_VAL(ISD::ADD),// ->85788
/* 85587*/        OPC_MoveChild0,
/* 85588*/        OPC_SwitchOpcode /*2 cases */, 96, TARGET_VAL(ISD::SUB),// ->85688
/* 85592*/          OPC_MoveChild0,
/* 85593*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85596*/          OPC_RecordChild0, // #0 = $opA
/* 85597*/          OPC_MoveParent,
/* 85598*/          OPC_MoveChild1,
/* 85599*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85602*/          OPC_RecordChild0, // #1 = $opB
/* 85603*/          OPC_MoveParent,
/* 85604*/          OPC_MoveParent,
/* 85605*/          OPC_MoveChild1,
/* 85606*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VSHRsIMM),
/* 85609*/          OPC_MoveChild0,
/* 85610*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 85613*/          OPC_MoveChild0,
/* 85614*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85617*/          OPC_CheckChild0Same, 0,
/* 85619*/          OPC_MoveParent,
/* 85620*/          OPC_MoveChild1,
/* 85621*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85624*/          OPC_CheckChild0Same, 1,
/* 85626*/          OPC_MoveParent,
/* 85627*/          OPC_MoveParent,
/* 85628*/          OPC_CheckChild1Integer, 63, 
/* 85630*/          OPC_MoveParent,
/* 85631*/          OPC_CheckType, MVT::v2i64,
/* 85633*/          OPC_MoveParent,
/* 85634*/          OPC_MoveParent,
/* 85635*/          OPC_MoveChild1,
/* 85636*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85639*/          OPC_MoveChild0,
/* 85640*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VSHRsIMM),
/* 85643*/          OPC_MoveChild0,
/* 85644*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 85647*/          OPC_MoveChild0,
/* 85648*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85651*/          OPC_CheckChild0Same, 0,
/* 85653*/          OPC_MoveParent,
/* 85654*/          OPC_MoveChild1,
/* 85655*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85658*/          OPC_CheckChild0Same, 1,
/* 85660*/          OPC_MoveParent,
/* 85661*/          OPC_MoveParent,
/* 85662*/          OPC_CheckChild1Integer, 63, 
/* 85664*/          OPC_CheckType, MVT::v2i64,
/* 85666*/          OPC_MoveParent,
/* 85667*/          OPC_MoveParent,
/* 85668*/          OPC_CheckType, MVT::v4i32,
/* 85670*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85672*/          OPC_EmitInteger, MVT::i32, 14, 
/* 85675*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85678*/          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)), (ARMvshrsImm:{ *:[v2i64] } (sub:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opA), (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$opB)), 63:{ *:[i32] }))), (bitconvert:{ *:[v4i32] } (ARMvshrsImm:{ *:[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)
/* 85688*/        /*SwitchOpcode*/ 96, TARGET_VAL(ARMISD::VSHRsIMM),// ->85787
/* 85691*/          OPC_MoveChild0,
/* 85692*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 85695*/          OPC_MoveChild0,
/* 85696*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85699*/          OPC_RecordChild0, // #0 = $opA
/* 85700*/          OPC_MoveParent,
/* 85701*/          OPC_MoveChild1,
/* 85702*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85705*/          OPC_RecordChild0, // #1 = $opB
/* 85706*/          OPC_MoveParent,
/* 85707*/          OPC_MoveParent,
/* 85708*/          OPC_CheckChild1Integer, 63, 
/* 85710*/          OPC_MoveParent,
/* 85711*/          OPC_MoveChild1,
/* 85712*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 85715*/          OPC_MoveChild0,
/* 85716*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85719*/          OPC_CheckChild0Same, 0,
/* 85721*/          OPC_MoveParent,
/* 85722*/          OPC_MoveChild1,
/* 85723*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85726*/          OPC_CheckChild0Same, 1,
/* 85728*/          OPC_MoveParent,
/* 85729*/          OPC_MoveParent,
/* 85730*/          OPC_CheckType, MVT::v2i64,
/* 85732*/          OPC_MoveParent,
/* 85733*/          OPC_MoveParent,
/* 85734*/          OPC_MoveChild1,
/* 85735*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85738*/          OPC_MoveChild0,
/* 85739*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VSHRsIMM),
/* 85742*/          OPC_MoveChild0,
/* 85743*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 85746*/          OPC_MoveChild0,
/* 85747*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85750*/          OPC_CheckChild0Same, 0,
/* 85752*/          OPC_MoveParent,
/* 85753*/          OPC_MoveChild1,
/* 85754*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 85757*/          OPC_CheckChild0Same, 1,
/* 85759*/          OPC_MoveParent,
/* 85760*/          OPC_MoveParent,
/* 85761*/          OPC_CheckChild1Integer, 63, 
/* 85763*/          OPC_CheckType, MVT::v2i64,
/* 85765*/          OPC_MoveParent,
/* 85766*/          OPC_MoveParent,
/* 85767*/          OPC_CheckType, MVT::v4i32,
/* 85769*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85771*/          OPC_EmitInteger, MVT::i32, 14, 
/* 85774*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85777*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv2i64), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (add:{ *:[v2i64] } (ARMvshrsImm:{ *:[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] } (ARMvshrsImm:{ *:[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)
/* 85787*/        0, // EndSwitchOpcode
/* 85788*/      0, // EndSwitchOpcode
/* 85789*/    /*Scope*/ 18|128,1/*146*/, /*->85937*/
/* 85791*/      OPC_RecordChild0, // #0 = $Vm
/* 85792*/      OPC_MoveChild1,
/* 85793*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85796*/      OPC_MoveChild0,
/* 85797*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 85800*/      OPC_MoveChild0,
/* 85801*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 85804*/      OPC_MoveParent,
/* 85805*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 85807*/      OPC_SwitchType /*2 cases */, 21, MVT::v8i8,// ->85831
/* 85810*/        OPC_MoveParent,
/* 85811*/        OPC_MoveParent,
/* 85812*/        OPC_CheckType, MVT::v2i32,
/* 85814*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85816*/        OPC_EmitInteger, MVT::i32, 14, 
/* 85819*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85822*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNd), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (xor:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (bitconvert:{ *:[v2i32] } (ARMvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)) - Complexity = 13
                  // Dst: (VMVNd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 85831*/      /*SwitchType*/ 103, MVT::v16i8,// ->85936
/* 85833*/        OPC_MoveParent,
/* 85834*/        OPC_MoveParent,
/* 85835*/        OPC_SwitchType /*3 cases */, 45, MVT::v4i32,// ->85883
/* 85838*/          OPC_Scope, 17, /*->85857*/ // 2 children in Scope
/* 85840*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85842*/            OPC_EmitInteger, MVT::i32, 14, 
/* 85845*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85848*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNq), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (xor:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (bitconvert:{ *:[v4i32] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)) - Complexity = 13
                      // Dst: (VMVNq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 85857*/          /*Scope*/ 24, /*->85882*/
/* 85858*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 85860*/            OPC_EmitInteger, MVT::i32, 0, 
/* 85863*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85866*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 85872*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMVN), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (xor:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1, (bitconvert:{ *:[v4i32] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)) - Complexity = 13
                      // Dst: (MVE_VMVN:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1)
/* 85882*/          0, /*End of Scope*/
/* 85883*/        /*SwitchType*/ 24, MVT::v8i16,// ->85909
/* 85885*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 85887*/          OPC_EmitInteger, MVT::i32, 0, 
/* 85890*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85893*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 85899*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMVN), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (xor:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1, (bitconvert:{ *:[v8i16] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)) - Complexity = 13
                    // Dst: (MVE_VMVN:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1)
/* 85909*/        /*SwitchType*/ 24, MVT::v2i64,// ->85935
/* 85911*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 85913*/          OPC_EmitInteger, MVT::i32, 0, 
/* 85916*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85919*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 85925*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMVN), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (xor:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$val1, (bitconvert:{ *:[v2i64] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>)) - Complexity = 13
                    // Dst: (MVE_VMVN:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$val1)
/* 85935*/        0, // EndSwitchType
/* 85936*/      0, // EndSwitchType
/* 85937*/    /*Scope*/ 19|128,1/*147*/, /*->86086*/
/* 85939*/      OPC_MoveChild0,
/* 85940*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 85943*/      OPC_MoveChild0,
/* 85944*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 85947*/      OPC_MoveChild0,
/* 85948*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 85951*/      OPC_MoveParent,
/* 85952*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 85954*/      OPC_SwitchType /*2 cases */, 22, MVT::v8i8,// ->85979
/* 85957*/        OPC_MoveParent,
/* 85958*/        OPC_MoveParent,
/* 85959*/        OPC_RecordChild1, // #0 = $Vm
/* 85960*/        OPC_CheckType, MVT::v2i32,
/* 85962*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85964*/        OPC_EmitInteger, MVT::i32, 14, 
/* 85967*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85970*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNd), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (xor:{ *:[v2i32] } (bitconvert:{ *:[v2i32] } (ARMvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), DPR:{ *:[v2i32] }:$Vm) - Complexity = 13
                  // Dst: (VMVNd:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 85979*/      /*SwitchType*/ 104, MVT::v16i8,// ->86085
/* 85981*/        OPC_MoveParent,
/* 85982*/        OPC_MoveParent,
/* 85983*/        OPC_RecordChild1, // #0 = $Vm
/* 85984*/        OPC_SwitchType /*3 cases */, 45, MVT::v4i32,// ->86032
/* 85987*/          OPC_Scope, 17, /*->86006*/ // 2 children in Scope
/* 85989*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 85991*/            OPC_EmitInteger, MVT::i32, 14, 
/* 85994*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 85997*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNq), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), QPR:{ *:[v4i32] }:$Vm) - Complexity = 13
                      // Dst: (VMVNq:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 86006*/          /*Scope*/ 24, /*->86031*/
/* 86007*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86009*/            OPC_EmitInteger, MVT::i32, 0, 
/* 86012*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86015*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 86021*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMVN), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (xor:{ *:[v4i32] } (bitconvert:{ *:[v4i32] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v4i32] }:$val1) - Complexity = 13
                      // Dst: (MVE_VMVN:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1)
/* 86031*/          0, /*End of Scope*/
/* 86032*/        /*SwitchType*/ 24, MVT::v8i16,// ->86058
/* 86034*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86036*/          OPC_EmitInteger, MVT::i32, 0, 
/* 86039*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86042*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 86048*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMVN), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (xor:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v8i16] }:$val1) - Complexity = 13
                    // Dst: (MVE_VMVN:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1)
/* 86058*/        /*SwitchType*/ 24, MVT::v2i64,// ->86084
/* 86060*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86062*/          OPC_EmitInteger, MVT::i32, 0, 
/* 86065*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86068*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 86074*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMVN), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (xor:{ *:[v2i64] } (bitconvert:{ *:[v2i64] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>), MQPR:{ *:[v2i64] }:$val1) - Complexity = 13
                    // Dst: (MVE_VMVN:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$val1)
/* 86084*/        0, // EndSwitchType
/* 86085*/      0, // EndSwitchType
/* 86086*/    /*Scope*/ 71, /*->86158*/
/* 86087*/      OPC_RecordChild0, // #0 = $pred
/* 86088*/      OPC_MoveChild1,
/* 86089*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::PREDICATE_CAST),
/* 86092*/      OPC_CheckChild0Integer, 127|128,127|128,3/*65535*/, 
/* 86096*/      OPC_CheckChild0Type, MVT::i32,
/* 86098*/      OPC_MoveParent,
/* 86099*/      OPC_SwitchType /*3 cases */, 17, MVT::v4i1,// ->86119
/* 86102*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86104*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86107*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86110*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPNOT), 0,
                      MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (xor:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$pred, (predicate_cast:{ *:[v4i1] } 65535:{ *:[i32] })) - Complexity = 11
                  // Dst: (MVE_VPNOT:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$pred)
/* 86119*/      /*SwitchType*/ 17, MVT::v8i1,// ->86138
/* 86121*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86123*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86126*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86129*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPNOT), 0,
                      MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (xor:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$pred, (predicate_cast:{ *:[v8i1] } 65535:{ *:[i32] })) - Complexity = 11
                  // Dst: (MVE_VPNOT:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$pred)
/* 86138*/      /*SwitchType*/ 17, MVT::v16i1,// ->86157
/* 86140*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86142*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86145*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86148*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPNOT), 0,
                      MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (xor:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$pred, (predicate_cast:{ *:[v16i1] } 65535:{ *:[i32] })) - Complexity = 11
                  // Dst: (MVE_VPNOT:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$pred)
/* 86157*/      0, // EndSwitchType
/* 86158*/    /*Scope*/ 71, /*->86230*/
/* 86159*/      OPC_MoveChild0,
/* 86160*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::PREDICATE_CAST),
/* 86163*/      OPC_CheckChild0Integer, 127|128,127|128,3/*65535*/, 
/* 86167*/      OPC_CheckChild0Type, MVT::i32,
/* 86169*/      OPC_MoveParent,
/* 86170*/      OPC_RecordChild1, // #0 = $pred
/* 86171*/      OPC_SwitchType /*3 cases */, 17, MVT::v4i1,// ->86191
/* 86174*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86176*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86179*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86182*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPNOT), 0,
                      MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (xor:{ *:[v4i1] } (predicate_cast:{ *:[v4i1] } 65535:{ *:[i32] }), VCCR:{ *:[v4i1] }:$pred) - Complexity = 11
                  // Dst: (MVE_VPNOT:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$pred)
/* 86191*/      /*SwitchType*/ 17, MVT::v8i1,// ->86210
/* 86193*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86195*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86198*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86201*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPNOT), 0,
                      MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (xor:{ *:[v8i1] } (predicate_cast:{ *:[v8i1] } 65535:{ *:[i32] }), VCCR:{ *:[v8i1] }:$pred) - Complexity = 11
                  // Dst: (MVE_VPNOT:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$pred)
/* 86210*/      /*SwitchType*/ 17, MVT::v16i1,// ->86229
/* 86212*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86214*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86217*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86220*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPNOT), 0,
                      MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (xor:{ *:[v16i1] } (predicate_cast:{ *:[v16i1] } 65535:{ *:[i32] }), VCCR:{ *:[v16i1] }:$pred) - Complexity = 11
                  // Dst: (MVE_VPNOT:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$pred)
/* 86229*/      0, // EndSwitchType
/* 86230*/    /*Scope*/ 39, /*->86270*/
/* 86231*/      OPC_RecordChild0, // #0 = $val1
/* 86232*/      OPC_MoveChild1,
/* 86233*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 86236*/      OPC_MoveChild0,
/* 86237*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 86240*/      OPC_MoveParent,
/* 86241*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 86243*/      OPC_MoveParent,
/* 86244*/      OPC_CheckType, MVT::v16i8,
/* 86246*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86248*/      OPC_EmitInteger, MVT::i32, 0, 
/* 86251*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86254*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 86260*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMVN), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (xor:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1, (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>) - Complexity = 10
                // Dst: (MVE_VMVN:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1)
/* 86270*/    /*Scope*/ 39, /*->86310*/
/* 86271*/      OPC_MoveChild0,
/* 86272*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 86275*/      OPC_MoveChild0,
/* 86276*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 86279*/      OPC_MoveParent,
/* 86280*/      OPC_CheckPredicate, 13, // Predicate_NEONimmAllOnesV
/* 86282*/      OPC_MoveParent,
/* 86283*/      OPC_RecordChild1, // #0 = $val1
/* 86284*/      OPC_CheckType, MVT::v16i8,
/* 86286*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86288*/      OPC_EmitInteger, MVT::i32, 0, 
/* 86291*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86294*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 86300*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMVN), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (xor:{ *:[v16i8] } (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllOnesV>>, MQPR:{ *:[v16i8] }:$val1) - Complexity = 10
                // Dst: (MVE_VMVN:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1)
/* 86310*/    /*Scope*/ 69|128,2/*325*/, /*->86637*/
/* 86312*/      OPC_RecordChild0, // #0 = $Vn
/* 86313*/      OPC_RecordChild1, // #1 = $Vm
/* 86314*/      OPC_SwitchType /*8 cases */, 18, MVT::v2i32,// ->86335
/* 86317*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 86319*/        OPC_EmitInteger, MVT::i32, 14, 
/* 86322*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86325*/        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)
/* 86335*/      /*SwitchType*/ 47, MVT::v4i32,// ->86384
/* 86337*/        OPC_Scope, 18, /*->86357*/ // 2 children in Scope
/* 86339*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 86341*/          OPC_EmitInteger, MVT::i32, 14, 
/* 86344*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86347*/          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)
/* 86357*/        /*Scope*/ 25, /*->86383*/
/* 86358*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86360*/          OPC_EmitInteger, MVT::i32, 0, 
/* 86363*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86366*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 86372*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VEOR), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (xor:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VEOR:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 86383*/        0, /*End of Scope*/
/* 86384*/      /*SwitchType*/ 25, MVT::v16i8,// ->86411
/* 86386*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86388*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86391*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86394*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 86400*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VEOR), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (xor:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VEOR:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 86411*/      /*SwitchType*/ 25, MVT::v8i16,// ->86438
/* 86413*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86415*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86418*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86421*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 86427*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VEOR), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (xor:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VEOR:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 86438*/      /*SwitchType*/ 25, MVT::v2i64,// ->86465
/* 86440*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86442*/        OPC_EmitInteger, MVT::i32, 0, 
/* 86445*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86448*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 86454*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VEOR), 0,
                      MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (xor:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VEOR:{ *:[v2i64] } MQPR:{ *:[v2i64] }:$Qm, MQPR:{ *:[v2i64] }:$Qn)
/* 86465*/      /*SwitchType*/ 55, MVT::v16i1,// ->86522
/* 86467*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86469*/        OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 86472*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 86480*/        OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 86483*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 86491*/        OPC_EmitInteger, MVT::i32, 14, 
/* 86494*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86497*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86500*/        OPC_EmitNode1, TARGET_VAL(ARM::t2EORrr), 0,
                      MVT::i32, 5/*#Ops*/, 3, 5, 6, 7, 8,  // Results = #9
/* 86511*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/* 86514*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 9, 10, 
                  // Src: (xor:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$p1, VCCR:{ *:[v16i1] }:$p2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (t2EORrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
/* 86522*/      /*SwitchType*/ 55, MVT::v8i1,// ->86579
/* 86524*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86526*/        OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 86529*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 86537*/        OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 86540*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 86548*/        OPC_EmitInteger, MVT::i32, 14, 
/* 86551*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86554*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86557*/        OPC_EmitNode1, TARGET_VAL(ARM::t2EORrr), 0,
                      MVT::i32, 5/*#Ops*/, 3, 5, 6, 7, 8,  // Results = #9
/* 86568*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/* 86571*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 9, 10, 
                  // Src: (xor:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$p1, VCCR:{ *:[v8i1] }:$p2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (t2EORrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
/* 86579*/      /*SwitchType*/ 55, MVT::v4i1,// ->86636
/* 86581*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 86583*/        OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 86586*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 86594*/        OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/* 86597*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 86605*/        OPC_EmitInteger, MVT::i32, 14, 
/* 86608*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86611*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86614*/        OPC_EmitNode1, TARGET_VAL(ARM::t2EORrr), 0,
                      MVT::i32, 5/*#Ops*/, 3, 5, 6, 7, 8,  // Results = #9
/* 86625*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/* 86628*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 9, 10, 
                  // Src: (xor:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$p1, VCCR:{ *:[v4i1] }:$p2) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (t2EORrr:{ *:[i32] } (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p1, rGPR:{ *:[i32] }), (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$p2, rGPR:{ *:[i32] })), VCCR:{ *:[i32] })
/* 86636*/      0, // EndSwitchType
/* 86637*/    0, /*End of Scope*/
/* 86638*/  /*SwitchOpcode*/ 80|128,11/*1488*/, TARGET_VAL(ISD::MUL),// ->88130
/* 86642*/    OPC_Scope, 46|128,1/*174*/, /*->86819*/ // 14 children in Scope
/* 86645*/      OPC_MoveChild0,
/* 86646*/      OPC_SwitchOpcode /*2 cases */, 109, TARGET_VAL(ISD::SRA),// ->86759
/* 86650*/        OPC_RecordChild0, // #0 = $Rn
/* 86651*/        OPC_CheckChild1Integer, 16, 
/* 86653*/        OPC_CheckChild1Type, MVT::i32,
/* 86655*/        OPC_MoveParent,
/* 86656*/        OPC_MoveChild1,
/* 86657*/        OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::SRA),// ->86709
/* 86661*/          OPC_RecordChild0, // #1 = $Rm
/* 86662*/          OPC_CheckChild1Integer, 16, 
/* 86664*/          OPC_CheckChild1Type, MVT::i32,
/* 86666*/          OPC_MoveParent,
/* 86667*/          OPC_CheckType, MVT::i32,
/* 86669*/          OPC_Scope, 18, /*->86689*/ // 2 children in Scope
/* 86671*/            OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 86673*/            OPC_EmitInteger, MVT::i32, 14, 
/* 86676*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86679*/            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)
/* 86689*/          /*Scope*/ 18, /*->86708*/
/* 86690*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 86692*/            OPC_EmitInteger, MVT::i32, 14, 
/* 86695*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86698*/            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)
/* 86708*/          0, /*End of Scope*/
/* 86709*/        /*SwitchOpcode*/ 46, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->86758
/* 86712*/          OPC_RecordChild0, // #1 = $Rm
/* 86713*/          OPC_MoveChild1,
/* 86714*/          OPC_CheckValueType, MVT::i16,
/* 86716*/          OPC_MoveParent,
/* 86717*/          OPC_MoveParent,
/* 86718*/          OPC_Scope, 18, /*->86738*/ // 2 children in Scope
/* 86720*/            OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 86722*/            OPC_EmitInteger, MVT::i32, 14, 
/* 86725*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86728*/            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)
/* 86738*/          /*Scope*/ 18, /*->86757*/
/* 86739*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 86741*/            OPC_EmitInteger, MVT::i32, 14, 
/* 86744*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86747*/            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)
/* 86757*/          0, /*End of Scope*/
/* 86758*/        0, // EndSwitchOpcode
/* 86759*/      /*SwitchOpcode*/ 56, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->86818
/* 86762*/        OPC_RecordChild0, // #0 = $Rn
/* 86763*/        OPC_MoveChild1,
/* 86764*/        OPC_CheckValueType, MVT::i16,
/* 86766*/        OPC_MoveParent,
/* 86767*/        OPC_MoveParent,
/* 86768*/        OPC_MoveChild1,
/* 86769*/        OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/* 86772*/        OPC_RecordChild0, // #1 = $Rm
/* 86773*/        OPC_CheckChild1Integer, 16, 
/* 86775*/        OPC_CheckChild1Type, MVT::i32,
/* 86777*/        OPC_MoveParent,
/* 86778*/        OPC_Scope, 18, /*->86798*/ // 2 children in Scope
/* 86780*/          OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 86782*/          OPC_EmitInteger, MVT::i32, 14, 
/* 86785*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86788*/          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)
/* 86798*/        /*Scope*/ 18, /*->86817*/
/* 86799*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 86801*/          OPC_EmitInteger, MVT::i32, 14, 
/* 86804*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86807*/          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)
/* 86817*/        0, /*End of Scope*/
/* 86818*/      0, // EndSwitchOpcode
/* 86819*/    /*Scope*/ 35, /*->86855*/
/* 86820*/      OPC_RecordChild0, // #0 = $a
/* 86821*/      OPC_MoveChild0,
/* 86822*/      OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 86824*/      OPC_MoveParent,
/* 86825*/      OPC_MoveChild1,
/* 86826*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/* 86829*/      OPC_RecordChild0, // #1 = $b
/* 86830*/      OPC_CheckChild1Integer, 16, 
/* 86832*/      OPC_CheckChild1Type, MVT::i32,
/* 86834*/      OPC_MoveParent,
/* 86835*/      OPC_CheckType, MVT::i32,
/* 86837*/      OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 86839*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86842*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86845*/      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)
/* 86855*/    /*Scope*/ 35, /*->86891*/
/* 86856*/      OPC_MoveChild0,
/* 86857*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/* 86860*/      OPC_RecordChild0, // #0 = $a
/* 86861*/      OPC_CheckChild1Integer, 16, 
/* 86863*/      OPC_CheckChild1Type, MVT::i32,
/* 86865*/      OPC_MoveParent,
/* 86866*/      OPC_RecordChild1, // #1 = $b
/* 86867*/      OPC_MoveChild1,
/* 86868*/      OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 86870*/      OPC_MoveParent,
/* 86871*/      OPC_CheckType, MVT::i32,
/* 86873*/      OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 86875*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86878*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86881*/      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)
/* 86891*/    /*Scope*/ 35, /*->86927*/
/* 86892*/      OPC_RecordChild0, // #0 = $Rn
/* 86893*/      OPC_MoveChild0,
/* 86894*/      OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 86896*/      OPC_MoveParent,
/* 86897*/      OPC_MoveChild1,
/* 86898*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRA),
/* 86901*/      OPC_RecordChild0, // #1 = $Rm
/* 86902*/      OPC_CheckChild1Integer, 16, 
/* 86904*/      OPC_CheckChild1Type, MVT::i32,
/* 86906*/      OPC_MoveParent,
/* 86907*/      OPC_CheckType, MVT::i32,
/* 86909*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 86911*/      OPC_EmitInteger, MVT::i32, 14, 
/* 86914*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86917*/      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)
/* 86927*/    /*Scope*/ 96, /*->87024*/
/* 86928*/      OPC_MoveChild0,
/* 86929*/      OPC_SwitchOpcode /*2 cases */, 31, TARGET_VAL(ISD::SRA),// ->86964
/* 86933*/        OPC_RecordChild0, // #0 = $Rn
/* 86934*/        OPC_CheckChild1Integer, 16, 
/* 86936*/        OPC_CheckChild1Type, MVT::i32,
/* 86938*/        OPC_MoveParent,
/* 86939*/        OPC_RecordChild1, // #1 = $Rm
/* 86940*/        OPC_MoveChild1,
/* 86941*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 86943*/        OPC_MoveParent,
/* 86944*/        OPC_CheckType, MVT::i32,
/* 86946*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 86948*/        OPC_EmitInteger, MVT::i32, 14, 
/* 86951*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86954*/        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)
/* 86964*/      /*SwitchOpcode*/ 56, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->87023
/* 86967*/        OPC_RecordChild0, // #0 = $Rn
/* 86968*/        OPC_MoveChild1,
/* 86969*/        OPC_CheckValueType, MVT::i16,
/* 86971*/        OPC_MoveParent,
/* 86972*/        OPC_MoveParent,
/* 86973*/        OPC_MoveChild1,
/* 86974*/        OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 86977*/        OPC_RecordChild0, // #1 = $Rm
/* 86978*/        OPC_MoveChild1,
/* 86979*/        OPC_CheckValueType, MVT::i16,
/* 86981*/        OPC_MoveParent,
/* 86982*/        OPC_MoveParent,
/* 86983*/        OPC_Scope, 18, /*->87003*/ // 2 children in Scope
/* 86985*/          OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 86987*/          OPC_EmitInteger, MVT::i32, 14, 
/* 86990*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 86993*/          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)
/* 87003*/        /*Scope*/ 18, /*->87022*/
/* 87004*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 87006*/          OPC_EmitInteger, MVT::i32, 14, 
/* 87009*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87012*/          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)
/* 87022*/        0, /*End of Scope*/
/* 87023*/      0, // EndSwitchOpcode
/* 87024*/    /*Scope*/ 55, /*->87080*/
/* 87025*/      OPC_RecordChild0, // #0 = $a
/* 87026*/      OPC_MoveChild0,
/* 87027*/      OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 87029*/      OPC_MoveParent,
/* 87030*/      OPC_MoveChild1,
/* 87031*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 87034*/      OPC_RecordChild0, // #1 = $b
/* 87035*/      OPC_MoveChild1,
/* 87036*/      OPC_CheckValueType, MVT::i16,
/* 87038*/      OPC_MoveParent,
/* 87039*/      OPC_MoveParent,
/* 87040*/      OPC_Scope, 18, /*->87060*/ // 2 children in Scope
/* 87042*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 87044*/        OPC_EmitInteger, MVT::i32, 14, 
/* 87047*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87050*/        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, (sext_inreg:{ *:[i32] } GPR:{ *:[i32] }:$b, i16:{ *:[Other] })) - Complexity = 7
                  // Dst: (SMULBB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 87060*/      /*Scope*/ 18, /*->87079*/
/* 87061*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 87063*/        OPC_EmitInteger, MVT::i32, 14, 
/* 87066*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87069*/        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>>:$Rn, (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i16:{ *:[Other] })) - Complexity = 7
                  // Dst: (t2SMULBB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 87079*/      0, /*End of Scope*/
/* 87080*/    /*Scope*/ 55, /*->87136*/
/* 87081*/      OPC_MoveChild0,
/* 87082*/      OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
/* 87085*/      OPC_RecordChild0, // #0 = $b
/* 87086*/      OPC_MoveChild1,
/* 87087*/      OPC_CheckValueType, MVT::i16,
/* 87089*/      OPC_MoveParent,
/* 87090*/      OPC_MoveParent,
/* 87091*/      OPC_RecordChild1, // #1 = $a
/* 87092*/      OPC_MoveChild1,
/* 87093*/      OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 87095*/      OPC_MoveParent,
/* 87096*/      OPC_Scope, 18, /*->87116*/ // 2 children in Scope
/* 87098*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 87100*/        OPC_EmitInteger, MVT::i32, 14, 
/* 87103*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87106*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::SMULBB), 0,
                      MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } GPR:{ *:[i32] }:$b, i16:{ *:[Other] }), GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$a) - Complexity = 7
                  // Dst: (SMULBB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 87116*/      /*Scope*/ 18, /*->87135*/
/* 87117*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 87119*/        OPC_EmitInteger, MVT::i32, 14, 
/* 87122*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87125*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2SMULBB), 0,
                      MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                  // Src: (mul:{ *:[i32] } (sext_inreg:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, i16:{ *:[Other] }), GPR:{ *:[i32] }<<P:Predicate_sext_16_node>>:$Rn) - Complexity = 7
                  // Dst: (t2SMULBB:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm)
/* 87135*/      0, /*End of Scope*/
/* 87136*/    /*Scope*/ 123|128,1/*251*/, /*->87389*/
/* 87138*/      OPC_RecordChild0, // #0 = $a
/* 87139*/      OPC_Scope, 29, /*->87170*/ // 3 children in Scope
/* 87141*/        OPC_MoveChild0,
/* 87142*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 87144*/        OPC_MoveParent,
/* 87145*/        OPC_RecordChild1, // #1 = $b
/* 87146*/        OPC_MoveChild1,
/* 87147*/        OPC_CheckPredicate, 16, // Predicate_sext_16_node
/* 87149*/        OPC_MoveParent,
/* 87150*/        OPC_CheckType, MVT::i32,
/* 87152*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 87154*/        OPC_EmitInteger, MVT::i32, 14, 
/* 87157*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87160*/        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)
/* 87170*/      /*Scope*/ 93, /*->87264*/
/* 87171*/        OPC_RecordChild1, // #1 = $Rm
/* 87172*/        OPC_CheckType, MVT::i32,
/* 87174*/        OPC_Scope, 22, /*->87198*/ // 4 children in Scope
/* 87176*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 87178*/          OPC_EmitInteger, MVT::i32, 14, 
/* 87181*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87184*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87187*/          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)
/* 87198*/        /*Scope*/ 22, /*->87221*/
/* 87199*/          OPC_CheckPatternPredicate, 64, // (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops()) && (Subtarget->useMulOps())
/* 87201*/          OPC_EmitInteger, MVT::i32, 14, 
/* 87204*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87207*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87210*/          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)
/* 87221*/        /*Scope*/ 22, /*->87244*/
/* 87222*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 87224*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 87227*/          OPC_EmitInteger, MVT::i32, 14, 
/* 87230*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87233*/          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)
/* 87244*/        /*Scope*/ 18, /*->87263*/
/* 87245*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 87247*/          OPC_EmitInteger, MVT::i32, 14, 
/* 87250*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87253*/          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)
/* 87263*/        0, /*End of Scope*/
/* 87264*/      /*Scope*/ 123, /*->87388*/
/* 87265*/        OPC_MoveChild1,
/* 87266*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 87269*/        OPC_RecordChild0, // #1 = $Vm
/* 87270*/        OPC_Scope, 57, /*->87329*/ // 2 children in Scope
/* 87272*/          OPC_CheckChild0Type, MVT::v4i16,
/* 87274*/          OPC_RecordChild1, // #2 = $lane
/* 87275*/          OPC_MoveChild1,
/* 87276*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87279*/          OPC_MoveParent,
/* 87280*/          OPC_MoveParent,
/* 87281*/          OPC_SwitchType /*2 cases */, 21, MVT::v4i16,// ->87305
/* 87284*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87286*/            OPC_EmitConvertToTarget, 2,
/* 87288*/            OPC_EmitInteger, MVT::i32, 14, 
/* 87291*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87294*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv4i16), 0,
                          MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (mul:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 87305*/          /*SwitchType*/ 21, MVT::v8i16,// ->87328
/* 87307*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87309*/            OPC_EmitConvertToTarget, 2,
/* 87311*/            OPC_EmitInteger, MVT::i32, 14, 
/* 87314*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87317*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, (ARMvduplane:{ *:[v8i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 87328*/          0, // EndSwitchType
/* 87329*/        /*Scope*/ 57, /*->87387*/
/* 87330*/          OPC_CheckChild0Type, MVT::v2i32,
/* 87332*/          OPC_RecordChild1, // #2 = $lane
/* 87333*/          OPC_MoveChild1,
/* 87334*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87337*/          OPC_MoveParent,
/* 87338*/          OPC_MoveParent,
/* 87339*/          OPC_SwitchType /*2 cases */, 21, MVT::v2i32,// ->87363
/* 87342*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87344*/            OPC_EmitConvertToTarget, 2,
/* 87346*/            OPC_EmitInteger, MVT::i32, 14, 
/* 87349*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87352*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv2i32), 0,
                          MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (mul:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 87363*/          /*SwitchType*/ 21, MVT::v4i32,// ->87386
/* 87365*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87367*/            OPC_EmitConvertToTarget, 2,
/* 87369*/            OPC_EmitInteger, MVT::i32, 14, 
/* 87372*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87375*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, (ARMvduplane:{ *:[v4i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 87386*/          0, // EndSwitchType
/* 87387*/        0, /*End of Scope*/
/* 87388*/      0, /*End of Scope*/
/* 87389*/    /*Scope*/ 125, /*->87515*/
/* 87390*/      OPC_MoveChild0,
/* 87391*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 87394*/      OPC_RecordChild0, // #0 = $Vm
/* 87395*/      OPC_Scope, 58, /*->87455*/ // 2 children in Scope
/* 87397*/        OPC_CheckChild0Type, MVT::v4i16,
/* 87399*/        OPC_RecordChild1, // #1 = $lane
/* 87400*/        OPC_MoveChild1,
/* 87401*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87404*/        OPC_MoveParent,
/* 87405*/        OPC_MoveParent,
/* 87406*/        OPC_RecordChild1, // #2 = $Vn
/* 87407*/        OPC_SwitchType /*2 cases */, 21, MVT::v4i16,// ->87431
/* 87410*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87412*/          OPC_EmitConvertToTarget, 1,
/* 87414*/          OPC_EmitInteger, MVT::i32, 14, 
/* 87417*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87420*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (mul:{ *:[v4i16] } (ARMvduplane:{ *:[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)
/* 87431*/        /*SwitchType*/ 21, MVT::v8i16,// ->87454
/* 87433*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87435*/          OPC_EmitConvertToTarget, 1,
/* 87437*/          OPC_EmitInteger, MVT::i32, 14, 
/* 87440*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87443*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (mul:{ *:[v8i16] } (ARMvduplane:{ *:[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)
/* 87454*/        0, // EndSwitchType
/* 87455*/      /*Scope*/ 58, /*->87514*/
/* 87456*/        OPC_CheckChild0Type, MVT::v2i32,
/* 87458*/        OPC_RecordChild1, // #1 = $lane
/* 87459*/        OPC_MoveChild1,
/* 87460*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87463*/        OPC_MoveParent,
/* 87464*/        OPC_MoveParent,
/* 87465*/        OPC_RecordChild1, // #2 = $Vn
/* 87466*/        OPC_SwitchType /*2 cases */, 21, MVT::v2i32,// ->87490
/* 87469*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87471*/          OPC_EmitConvertToTarget, 1,
/* 87473*/          OPC_EmitInteger, MVT::i32, 14, 
/* 87476*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87479*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (mul:{ *:[v2i32] } (ARMvduplane:{ *:[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)
/* 87490*/        /*SwitchType*/ 21, MVT::v4i32,// ->87513
/* 87492*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87494*/          OPC_EmitConvertToTarget, 1,
/* 87496*/          OPC_EmitInteger, MVT::i32, 14, 
/* 87499*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87502*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (mul:{ *:[v4i32] } (ARMvduplane:{ *:[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)
/* 87513*/        0, // EndSwitchType
/* 87514*/      0, /*End of Scope*/
/* 87515*/    /*Scope*/ 106, /*->87622*/
/* 87516*/      OPC_RecordChild0, // #0 = $src1
/* 87517*/      OPC_MoveChild1,
/* 87518*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 87521*/      OPC_RecordChild0, // #1 = $src2
/* 87522*/      OPC_Scope, 48, /*->87572*/ // 2 children in Scope
/* 87524*/        OPC_CheckChild0Type, MVT::v8i16,
/* 87526*/        OPC_RecordChild1, // #2 = $lane
/* 87527*/        OPC_MoveChild1,
/* 87528*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87531*/        OPC_MoveParent,
/* 87532*/        OPC_MoveParent,
/* 87533*/        OPC_CheckType, MVT::v8i16,
/* 87535*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87537*/        OPC_EmitConvertToTarget, 2,
/* 87539*/        OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/* 87542*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 1, 4,  // Results = #5
/* 87550*/        OPC_EmitConvertToTarget, 2,
/* 87552*/        OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/* 87555*/        OPC_EmitInteger, MVT::i32, 14, 
/* 87558*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87561*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv8i16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                  // Src: (mul:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (ARMvduplane:{ *:[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))
/* 87572*/      /*Scope*/ 48, /*->87621*/
/* 87573*/        OPC_CheckChild0Type, MVT::v4i32,
/* 87575*/        OPC_RecordChild1, // #2 = $lane
/* 87576*/        OPC_MoveChild1,
/* 87577*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87580*/        OPC_MoveParent,
/* 87581*/        OPC_MoveParent,
/* 87582*/        OPC_CheckType, MVT::v4i32,
/* 87584*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87586*/        OPC_EmitConvertToTarget, 2,
/* 87588*/        OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 87591*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 87599*/        OPC_EmitConvertToTarget, 2,
/* 87601*/        OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 87604*/        OPC_EmitInteger, MVT::i32, 14, 
/* 87607*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87610*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv4i32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                  // Src: (mul:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (ARMvduplane:{ *:[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))
/* 87621*/      0, /*End of Scope*/
/* 87622*/    /*Scope*/ 107, /*->87730*/
/* 87623*/      OPC_MoveChild0,
/* 87624*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 87627*/      OPC_RecordChild0, // #0 = $src2
/* 87628*/      OPC_Scope, 49, /*->87679*/ // 2 children in Scope
/* 87630*/        OPC_CheckChild0Type, MVT::v8i16,
/* 87632*/        OPC_RecordChild1, // #1 = $lane
/* 87633*/        OPC_MoveChild1,
/* 87634*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87637*/        OPC_MoveParent,
/* 87638*/        OPC_MoveParent,
/* 87639*/        OPC_RecordChild1, // #2 = $src1
/* 87640*/        OPC_CheckType, MVT::v8i16,
/* 87642*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87644*/        OPC_EmitConvertToTarget, 1,
/* 87646*/        OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/* 87649*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 4,  // Results = #5
/* 87657*/        OPC_EmitConvertToTarget, 1,
/* 87659*/        OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/* 87662*/        OPC_EmitInteger, MVT::i32, 14, 
/* 87665*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87668*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv8i16), 0,
                      MVT::v8i16, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                  // Src: (mul:{ *:[v8i16] } (ARMvduplane:{ *:[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))
/* 87679*/      /*Scope*/ 49, /*->87729*/
/* 87680*/        OPC_CheckChild0Type, MVT::v4i32,
/* 87682*/        OPC_RecordChild1, // #1 = $lane
/* 87683*/        OPC_MoveChild1,
/* 87684*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 87687*/        OPC_MoveParent,
/* 87688*/        OPC_MoveParent,
/* 87689*/        OPC_RecordChild1, // #2 = $src1
/* 87690*/        OPC_CheckType, MVT::v4i32,
/* 87692*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87694*/        OPC_EmitConvertToTarget, 1,
/* 87696*/        OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/* 87699*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 4,  // Results = #5
/* 87707*/        OPC_EmitConvertToTarget, 1,
/* 87709*/        OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/* 87712*/        OPC_EmitInteger, MVT::i32, 14, 
/* 87715*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87718*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslv4i32), 0,
                      MVT::v4i32, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                  // Src: (mul:{ *:[v4i32] } (ARMvduplane:{ *:[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))
/* 87729*/      0, /*End of Scope*/
/* 87730*/    /*Scope*/ 92, /*->87823*/
/* 87731*/      OPC_RecordChild0, // #0 = $val1
/* 87732*/      OPC_MoveChild1,
/* 87733*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 87736*/      OPC_RecordChild0, // #1 = $val2
/* 87737*/      OPC_CheckChild0Type, MVT::i32,
/* 87739*/      OPC_MoveParent,
/* 87740*/      OPC_SwitchType /*3 cases */, 25, MVT::v16i8,// ->87768
/* 87743*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 87745*/        OPC_EmitInteger, MVT::i32, 0, 
/* 87748*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87751*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 87757*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMUL_qr_i8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (mul:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$val2)) - Complexity = 6
                  // Dst: (MVE_VMUL_qr_i8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1, GPR:{ *:[i32] }:$val2)
/* 87768*/      /*SwitchType*/ 25, MVT::v8i16,// ->87795
/* 87770*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 87772*/        OPC_EmitInteger, MVT::i32, 0, 
/* 87775*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87778*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 87784*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMUL_qr_i16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (mul:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$val2)) - Complexity = 6
                  // Dst: (MVE_VMUL_qr_i16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1, GPR:{ *:[i32] }:$val2)
/* 87795*/      /*SwitchType*/ 25, MVT::v4i32,// ->87822
/* 87797*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 87799*/        OPC_EmitInteger, MVT::i32, 0, 
/* 87802*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87805*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 87811*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMUL_qr_i32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (mul:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$val2)) - Complexity = 6
                  // Dst: (MVE_VMUL_qr_i32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1, GPR:{ *:[i32] }:$val2)
/* 87822*/      0, // EndSwitchType
/* 87823*/    /*Scope*/ 92, /*->87916*/
/* 87824*/      OPC_MoveChild0,
/* 87825*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/* 87828*/      OPC_RecordChild0, // #0 = $val2
/* 87829*/      OPC_CheckChild0Type, MVT::i32,
/* 87831*/      OPC_MoveParent,
/* 87832*/      OPC_RecordChild1, // #1 = $val1
/* 87833*/      OPC_SwitchType /*3 cases */, 25, MVT::v16i8,// ->87861
/* 87836*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 87838*/        OPC_EmitInteger, MVT::i32, 0, 
/* 87841*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87844*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 87850*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMUL_qr_i8), 0,
                      MVT::v16i8, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (mul:{ *:[v16i8] } (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$val2), MQPR:{ *:[v16i8] }:$val1) - Complexity = 6
                  // Dst: (MVE_VMUL_qr_i8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1, GPR:{ *:[i32] }:$val2)
/* 87861*/      /*SwitchType*/ 25, MVT::v8i16,// ->87888
/* 87863*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 87865*/        OPC_EmitInteger, MVT::i32, 0, 
/* 87868*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87871*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 87877*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMUL_qr_i16), 0,
                      MVT::v8i16, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (mul:{ *:[v8i16] } (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$val2), MQPR:{ *:[v8i16] }:$val1) - Complexity = 6
                  // Dst: (MVE_VMUL_qr_i16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1, GPR:{ *:[i32] }:$val2)
/* 87888*/      /*SwitchType*/ 25, MVT::v4i32,// ->87915
/* 87890*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 87892*/        OPC_EmitInteger, MVT::i32, 0, 
/* 87895*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87898*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 87904*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMUL_qr_i32), 0,
                      MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (mul:{ *:[v4i32] } (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$val2), MQPR:{ *:[v4i32] }:$val1) - Complexity = 6
                  // Dst: (MVE_VMUL_qr_i32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1, GPR:{ *:[i32] }:$val2)
/* 87915*/      0, // EndSwitchType
/* 87916*/    /*Scope*/ 83|128,1/*211*/, /*->88129*/
/* 87918*/      OPC_RecordChild0, // #0 = $Vn
/* 87919*/      OPC_RecordChild1, // #1 = $Vm
/* 87920*/      OPC_SwitchType /*6 cases */, 18, MVT::v8i8,// ->87941
/* 87923*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87925*/        OPC_EmitInteger, MVT::i32, 14, 
/* 87928*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87931*/        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)
/* 87941*/      /*SwitchType*/ 18, MVT::v4i16,// ->87961
/* 87943*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87945*/        OPC_EmitInteger, MVT::i32, 14, 
/* 87948*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87951*/        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)
/* 87961*/      /*SwitchType*/ 18, MVT::v2i32,// ->87981
/* 87963*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87965*/        OPC_EmitInteger, MVT::i32, 14, 
/* 87968*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87971*/        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)
/* 87981*/      /*SwitchType*/ 47, MVT::v16i8,// ->88030
/* 87983*/        OPC_Scope, 18, /*->88003*/ // 2 children in Scope
/* 87985*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 87987*/          OPC_EmitInteger, MVT::i32, 14, 
/* 87990*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 87993*/          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)
/* 88003*/        /*Scope*/ 25, /*->88029*/
/* 88004*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 88006*/          OPC_EmitInteger, MVT::i32, 0, 
/* 88009*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88012*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 88018*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULi8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (mul:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VMULi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 88029*/        0, /*End of Scope*/
/* 88030*/      /*SwitchType*/ 47, MVT::v8i16,// ->88079
/* 88032*/        OPC_Scope, 18, /*->88052*/ // 2 children in Scope
/* 88034*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 88036*/          OPC_EmitInteger, MVT::i32, 14, 
/* 88039*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88042*/          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)
/* 88052*/        /*Scope*/ 25, /*->88078*/
/* 88053*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 88055*/          OPC_EmitInteger, MVT::i32, 0, 
/* 88058*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88061*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 88067*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULi16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (mul:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VMULi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 88078*/        0, /*End of Scope*/
/* 88079*/      /*SwitchType*/ 47, MVT::v4i32,// ->88128
/* 88081*/        OPC_Scope, 18, /*->88101*/ // 2 children in Scope
/* 88083*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 88085*/          OPC_EmitInteger, MVT::i32, 14, 
/* 88088*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88091*/          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)
/* 88101*/        /*Scope*/ 25, /*->88127*/
/* 88102*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 88104*/          OPC_EmitInteger, MVT::i32, 0, 
/* 88107*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88110*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 88116*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULi32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (mul:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VMULi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 88127*/        0, /*End of Scope*/
/* 88128*/      0, // EndSwitchType
/* 88129*/    0, /*End of Scope*/
/* 88130*/  /*SwitchOpcode*/ 25|128,5/*665*/, TARGET_VAL(ISD::ATOMIC_LOAD),// ->88799
/* 88134*/    OPC_RecordMemRef,
/* 88135*/    OPC_RecordNode, // #0 = 'atomic_load' chained node
/* 88136*/    OPC_RecordChild1, // #1 = $addr
/* 88137*/    OPC_CheckChild1Type, MVT::i32,
/* 88139*/    OPC_CheckType, MVT::i32,
/* 88141*/    OPC_Scope, 25, /*->88168*/ // 20 children in Scope
/* 88143*/      OPC_CheckPredicate, 44, // Predicate_atomic_load_8
/* 88145*/      OPC_CheckPredicate, 75, // Predicate_atomic_load_acquire_8
/* 88147*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 88149*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 88152*/      OPC_EmitMergeInputChains1_0,
/* 88153*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88156*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88159*/      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)
/* 88168*/    /*Scope*/ 25, /*->88194*/
/* 88169*/      OPC_CheckPredicate, 39, // Predicate_atomic_load_16
/* 88171*/      OPC_CheckPredicate, 75, // Predicate_atomic_load_acquire_16
/* 88173*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 88175*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 88178*/      OPC_EmitMergeInputChains1_0,
/* 88179*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88182*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88185*/      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)
/* 88194*/    /*Scope*/ 25, /*->88220*/
/* 88195*/      OPC_CheckPredicate, 76, // Predicate_atomic_load_32
/* 88197*/      OPC_CheckPredicate, 75, // Predicate_atomic_load_acquire_32
/* 88199*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 88201*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 88204*/      OPC_EmitMergeInputChains1_0,
/* 88205*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88208*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88211*/      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)
/* 88220*/    /*Scope*/ 25, /*->88246*/
/* 88221*/      OPC_CheckPredicate, 44, // Predicate_atomic_load_8
/* 88223*/      OPC_CheckPredicate, 75, // Predicate_atomic_load_acquire_8
/* 88225*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 88227*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 88230*/      OPC_EmitMergeInputChains1_0,
/* 88231*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88234*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88237*/      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)
/* 88246*/    /*Scope*/ 25, /*->88272*/
/* 88247*/      OPC_CheckPredicate, 39, // Predicate_atomic_load_16
/* 88249*/      OPC_CheckPredicate, 75, // Predicate_atomic_load_acquire_16
/* 88251*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 88253*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 88256*/      OPC_EmitMergeInputChains1_0,
/* 88257*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88260*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88263*/      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)
/* 88272*/    /*Scope*/ 25, /*->88298*/
/* 88273*/      OPC_CheckPredicate, 76, // Predicate_atomic_load_32
/* 88275*/      OPC_CheckPredicate, 75, // Predicate_atomic_load_acquire_32
/* 88277*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 88279*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #2
/* 88282*/      OPC_EmitMergeInputChains1_0,
/* 88283*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88286*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88289*/      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)
/* 88298*/    /*Scope*/ 25, /*->88324*/
/* 88299*/      OPC_CheckPredicate, 44, // Predicate_atomic_load_8
/* 88301*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 88303*/      OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectLdStSOReg:$src #2 #3 #4
/* 88306*/      OPC_EmitMergeInputChains1_0,
/* 88307*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88310*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88313*/      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)
/* 88324*/    /*Scope*/ 25, /*->88350*/
/* 88325*/      OPC_CheckPredicate, 39, // Predicate_atomic_load_16
/* 88327*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 88329*/      OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrMode3:$src #2 #3 #4
/* 88332*/      OPC_EmitMergeInputChains1_0,
/* 88333*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88336*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88339*/      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)
/* 88350*/    /*Scope*/ 25, /*->88376*/
/* 88351*/      OPC_CheckPredicate, 76, // Predicate_atomic_load_32
/* 88353*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 88355*/      OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectLdStSOReg:$src #2 #3 #4
/* 88358*/      OPC_EmitMergeInputChains1_0,
/* 88359*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88362*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88365*/      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)
/* 88376*/    /*Scope*/ 25, /*->88402*/
/* 88377*/      OPC_CheckPredicate, 44, // Predicate_atomic_load_8
/* 88379*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 88381*/      OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 88384*/      OPC_EmitMergeInputChains1_0,
/* 88385*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88388*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88391*/      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)
/* 88402*/    /*Scope*/ 25, /*->88428*/
/* 88403*/      OPC_CheckPredicate, 39, // Predicate_atomic_load_16
/* 88405*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 88407*/      OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 88410*/      OPC_EmitMergeInputChains1_0,
/* 88411*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88414*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88417*/      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)
/* 88428*/    /*Scope*/ 25, /*->88454*/
/* 88429*/      OPC_CheckPredicate, 76, // Predicate_atomic_load_32
/* 88431*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 88433*/      OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #2 #3 #4
/* 88436*/      OPC_EmitMergeInputChains1_0,
/* 88437*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88440*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88443*/      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)
/* 88454*/    /*Scope*/ 24, /*->88479*/
/* 88455*/      OPC_CheckPredicate, 44, // Predicate_atomic_load_8
/* 88457*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 88459*/      OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectAddrModeImm12:$src #2 #3
/* 88462*/      OPC_EmitMergeInputChains1_0,
/* 88463*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88466*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88469*/      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)
/* 88479*/    /*Scope*/ 24, /*->88504*/
/* 88480*/      OPC_CheckPredicate, 76, // Predicate_atomic_load_32
/* 88482*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 88484*/      OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectAddrModeImm12:$src #2 #3
/* 88487*/      OPC_EmitMergeInputChains1_0,
/* 88488*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88491*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88494*/      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)
/* 88504*/    /*Scope*/ 48, /*->88553*/
/* 88505*/      OPC_CheckPredicate, 44, // Predicate_atomic_load_8
/* 88507*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 88509*/      OPC_Scope, 20, /*->88531*/ // 2 children in Scope
/* 88511*/        OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectThumbAddrModeImm5S1:$src #2 #3
/* 88514*/        OPC_EmitMergeInputChains1_0,
/* 88515*/        OPC_EmitInteger, MVT::i32, 14, 
/* 88518*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88521*/        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)
/* 88531*/      /*Scope*/ 20, /*->88552*/
/* 88532*/        OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$src #2 #3
/* 88535*/        OPC_EmitMergeInputChains1_0,
/* 88536*/        OPC_EmitInteger, MVT::i32, 14, 
/* 88539*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88542*/        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)
/* 88552*/      0, /*End of Scope*/
/* 88553*/    /*Scope*/ 48, /*->88602*/
/* 88554*/      OPC_CheckPredicate, 39, // Predicate_atomic_load_16
/* 88556*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 88558*/      OPC_Scope, 20, /*->88580*/ // 2 children in Scope
/* 88560*/        OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectThumbAddrModeImm5S2:$src #2 #3
/* 88563*/        OPC_EmitMergeInputChains1_0,
/* 88564*/        OPC_EmitInteger, MVT::i32, 14, 
/* 88567*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88570*/        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)
/* 88580*/      /*Scope*/ 20, /*->88601*/
/* 88581*/        OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$src #2 #3
/* 88584*/        OPC_EmitMergeInputChains1_0,
/* 88585*/        OPC_EmitInteger, MVT::i32, 14, 
/* 88588*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88591*/        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)
/* 88601*/      0, /*End of Scope*/
/* 88602*/    /*Scope*/ 48, /*->88651*/
/* 88603*/      OPC_CheckPredicate, 76, // Predicate_atomic_load_32
/* 88605*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 88607*/      OPC_Scope, 20, /*->88629*/ // 2 children in Scope
/* 88609*/        OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectThumbAddrModeImm5S4:$src #2 #3
/* 88612*/        OPC_EmitMergeInputChains1_0,
/* 88613*/        OPC_EmitInteger, MVT::i32, 14, 
/* 88616*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88619*/        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)
/* 88629*/      /*Scope*/ 20, /*->88650*/
/* 88630*/        OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$src #2 #3
/* 88633*/        OPC_EmitMergeInputChains1_0,
/* 88634*/        OPC_EmitInteger, MVT::i32, 14, 
/* 88637*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88640*/        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)
/* 88650*/      0, /*End of Scope*/
/* 88651*/    /*Scope*/ 48, /*->88700*/
/* 88652*/      OPC_CheckPredicate, 44, // Predicate_atomic_load_8
/* 88654*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 88656*/      OPC_Scope, 20, /*->88678*/ // 2 children in Scope
/* 88658*/        OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 88661*/        OPC_EmitMergeInputChains1_0,
/* 88662*/        OPC_EmitInteger, MVT::i32, 14, 
/* 88665*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88668*/        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)
/* 88678*/      /*Scope*/ 20, /*->88699*/
/* 88679*/        OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 88682*/        OPC_EmitMergeInputChains1_0,
/* 88683*/        OPC_EmitInteger, MVT::i32, 14, 
/* 88686*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88689*/        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)
/* 88699*/      0, /*End of Scope*/
/* 88700*/    /*Scope*/ 48, /*->88749*/
/* 88701*/      OPC_CheckPredicate, 39, // Predicate_atomic_load_16
/* 88703*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 88705*/      OPC_Scope, 20, /*->88727*/ // 2 children in Scope
/* 88707*/        OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 88710*/        OPC_EmitMergeInputChains1_0,
/* 88711*/        OPC_EmitInteger, MVT::i32, 14, 
/* 88714*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88717*/        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)
/* 88727*/      /*Scope*/ 20, /*->88748*/
/* 88728*/        OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 88731*/        OPC_EmitMergeInputChains1_0,
/* 88732*/        OPC_EmitInteger, MVT::i32, 14, 
/* 88735*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88738*/        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)
/* 88748*/      0, /*End of Scope*/
/* 88749*/    /*Scope*/ 48, /*->88798*/
/* 88750*/      OPC_CheckPredicate, 76, // Predicate_atomic_load_32
/* 88752*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 88754*/      OPC_Scope, 20, /*->88776*/ // 2 children in Scope
/* 88756*/        OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #2 #3
/* 88759*/        OPC_EmitMergeInputChains1_0,
/* 88760*/        OPC_EmitInteger, MVT::i32, 14, 
/* 88763*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88766*/        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)
/* 88776*/      /*Scope*/ 20, /*->88797*/
/* 88777*/        OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #2 #3
/* 88780*/        OPC_EmitMergeInputChains1_0,
/* 88781*/        OPC_EmitInteger, MVT::i32, 14, 
/* 88784*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88787*/        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)
/* 88797*/      0, /*End of Scope*/
/* 88798*/    0, /*End of Scope*/
/* 88799*/  /*SwitchOpcode*/ 26|128,5/*666*/, TARGET_VAL(ISD::ATOMIC_STORE),// ->89469
/* 88803*/    OPC_RecordMemRef,
/* 88804*/    OPC_RecordNode, // #0 = 'atomic_store' chained node
/* 88805*/    OPC_RecordChild1, // #1 = $addr
/* 88806*/    OPC_CheckChild1Type, MVT::i32,
/* 88808*/    OPC_RecordChild2, // #2 = $val
/* 88809*/    OPC_CheckChild2Type, MVT::i32,
/* 88811*/    OPC_Scope, 25, /*->88838*/ // 20 children in Scope
/* 88813*/      OPC_CheckPredicate, 44, // Predicate_atomic_store_8
/* 88815*/      OPC_CheckPredicate, 77, // Predicate_atomic_store_release_8
/* 88817*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 88819*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #3
/* 88822*/      OPC_EmitMergeInputChains1_0,
/* 88823*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88826*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88829*/      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)
/* 88838*/    /*Scope*/ 25, /*->88864*/
/* 88839*/      OPC_CheckPredicate, 39, // Predicate_atomic_store_16
/* 88841*/      OPC_CheckPredicate, 77, // Predicate_atomic_store_release_16
/* 88843*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 88845*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #3
/* 88848*/      OPC_EmitMergeInputChains1_0,
/* 88849*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88852*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88855*/      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)
/* 88864*/    /*Scope*/ 25, /*->88890*/
/* 88865*/      OPC_CheckPredicate, 76, // Predicate_atomic_store_32
/* 88867*/      OPC_CheckPredicate, 77, // Predicate_atomic_store_release_32
/* 88869*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 88871*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #3
/* 88874*/      OPC_EmitMergeInputChains1_0,
/* 88875*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88878*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88881*/      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)
/* 88890*/    /*Scope*/ 25, /*->88916*/
/* 88891*/      OPC_CheckPredicate, 44, // Predicate_atomic_store_8
/* 88893*/      OPC_CheckPredicate, 77, // Predicate_atomic_store_release_8
/* 88895*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 88897*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #3
/* 88900*/      OPC_EmitMergeInputChains1_0,
/* 88901*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88904*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88907*/      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)
/* 88916*/    /*Scope*/ 25, /*->88942*/
/* 88917*/      OPC_CheckPredicate, 39, // Predicate_atomic_store_16
/* 88919*/      OPC_CheckPredicate, 77, // Predicate_atomic_store_release_16
/* 88921*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 88923*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #3
/* 88926*/      OPC_EmitMergeInputChains1_0,
/* 88927*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88930*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88933*/      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)
/* 88942*/    /*Scope*/ 25, /*->88968*/
/* 88943*/      OPC_CheckPredicate, 76, // Predicate_atomic_store_32
/* 88945*/      OPC_CheckPredicate, 77, // Predicate_atomic_store_release_32
/* 88947*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb())
/* 88949*/      OPC_CheckComplexPat, /*CP*/4, /*#*/1, // SelectAddrOffsetNone:$addr #3
/* 88952*/      OPC_EmitMergeInputChains1_0,
/* 88953*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88956*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88959*/      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)
/* 88968*/    /*Scope*/ 25, /*->88994*/
/* 88969*/      OPC_CheckPredicate, 44, // Predicate_atomic_store_8
/* 88971*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 88973*/      OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectLdStSOReg:$ptr #3 #4 #5
/* 88976*/      OPC_EmitMergeInputChains1_0,
/* 88977*/      OPC_EmitInteger, MVT::i32, 14, 
/* 88980*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 88983*/      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)
/* 88994*/    /*Scope*/ 25, /*->89020*/
/* 88995*/      OPC_CheckPredicate, 39, // Predicate_atomic_store_16
/* 88997*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 88999*/      OPC_CheckComplexPat, /*CP*/7, /*#*/1, // SelectAddrMode3:$ptr #3 #4 #5
/* 89002*/      OPC_EmitMergeInputChains1_0,
/* 89003*/      OPC_EmitInteger, MVT::i32, 14, 
/* 89006*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89009*/      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)
/* 89020*/    /*Scope*/ 25, /*->89046*/
/* 89021*/      OPC_CheckPredicate, 76, // Predicate_atomic_store_32
/* 89023*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 89025*/      OPC_CheckComplexPat, /*CP*/19, /*#*/1, // SelectLdStSOReg:$ptr #3 #4 #5
/* 89028*/      OPC_EmitMergeInputChains1_0,
/* 89029*/      OPC_EmitInteger, MVT::i32, 14, 
/* 89032*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89035*/      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)
/* 89046*/    /*Scope*/ 25, /*->89072*/
/* 89047*/      OPC_CheckPredicate, 44, // Predicate_atomic_store_8
/* 89049*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 89051*/      OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #3 #4 #5
/* 89054*/      OPC_EmitMergeInputChains1_0,
/* 89055*/      OPC_EmitInteger, MVT::i32, 14, 
/* 89058*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89061*/      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)
/* 89072*/    /*Scope*/ 25, /*->89098*/
/* 89073*/      OPC_CheckPredicate, 39, // Predicate_atomic_store_16
/* 89075*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 89077*/      OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #3 #4 #5
/* 89080*/      OPC_EmitMergeInputChains1_0,
/* 89081*/      OPC_EmitInteger, MVT::i32, 14, 
/* 89084*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89087*/      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)
/* 89098*/    /*Scope*/ 25, /*->89124*/
/* 89099*/      OPC_CheckPredicate, 76, // Predicate_atomic_store_32
/* 89101*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 89103*/      OPC_CheckComplexPat, /*CP*/20, /*#*/1, // SelectT2AddrModeSoReg:$addr #3 #4 #5
/* 89106*/      OPC_EmitMergeInputChains1_0,
/* 89107*/      OPC_EmitInteger, MVT::i32, 14, 
/* 89110*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89113*/      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)
/* 89124*/    /*Scope*/ 24, /*->89149*/
/* 89125*/      OPC_CheckPredicate, 44, // Predicate_atomic_store_8
/* 89127*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 89129*/      OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectAddrModeImm12:$ptr #3 #4
/* 89132*/      OPC_EmitMergeInputChains1_0,
/* 89133*/      OPC_EmitInteger, MVT::i32, 14, 
/* 89136*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89139*/      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)
/* 89149*/    /*Scope*/ 24, /*->89174*/
/* 89150*/      OPC_CheckPredicate, 76, // Predicate_atomic_store_32
/* 89152*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 89154*/      OPC_CheckComplexPat, /*CP*/23, /*#*/1, // SelectAddrModeImm12:$ptr #3 #4
/* 89157*/      OPC_EmitMergeInputChains1_0,
/* 89158*/      OPC_EmitInteger, MVT::i32, 14, 
/* 89161*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89164*/      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)
/* 89174*/    /*Scope*/ 48, /*->89223*/
/* 89175*/      OPC_CheckPredicate, 44, // Predicate_atomic_store_8
/* 89177*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 89179*/      OPC_Scope, 20, /*->89201*/ // 2 children in Scope
/* 89181*/        OPC_CheckComplexPat, /*CP*/26, /*#*/1, // SelectThumbAddrModeImm5S1:$ptr #3 #4
/* 89184*/        OPC_EmitMergeInputChains1_0,
/* 89185*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89188*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89191*/        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)
/* 89201*/      /*Scope*/ 20, /*->89222*/
/* 89202*/        OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$ptr #3 #4
/* 89205*/        OPC_EmitMergeInputChains1_0,
/* 89206*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89209*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89212*/        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)
/* 89222*/      0, /*End of Scope*/
/* 89223*/    /*Scope*/ 48, /*->89272*/
/* 89224*/      OPC_CheckPredicate, 39, // Predicate_atomic_store_16
/* 89226*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 89228*/      OPC_Scope, 20, /*->89250*/ // 2 children in Scope
/* 89230*/        OPC_CheckComplexPat, /*CP*/8, /*#*/1, // SelectThumbAddrModeImm5S2:$ptr #3 #4
/* 89233*/        OPC_EmitMergeInputChains1_0,
/* 89234*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89237*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89240*/        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)
/* 89250*/      /*Scope*/ 20, /*->89271*/
/* 89251*/        OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$ptr #3 #4
/* 89254*/        OPC_EmitMergeInputChains1_0,
/* 89255*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89258*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89261*/        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)
/* 89271*/      0, /*End of Scope*/
/* 89272*/    /*Scope*/ 48, /*->89321*/
/* 89273*/      OPC_CheckPredicate, 76, // Predicate_atomic_store_32
/* 89275*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 89277*/      OPC_Scope, 20, /*->89299*/ // 2 children in Scope
/* 89279*/        OPC_CheckComplexPat, /*CP*/25, /*#*/1, // SelectThumbAddrModeImm5S4:$ptr #3 #4
/* 89282*/        OPC_EmitMergeInputChains1_0,
/* 89283*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89286*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89289*/        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)
/* 89299*/      /*Scope*/ 20, /*->89320*/
/* 89300*/        OPC_CheckComplexPat, /*CP*/9, /*#*/1, // SelectThumbAddrModeRR:$ptr #3 #4
/* 89303*/        OPC_EmitMergeInputChains1_0,
/* 89304*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89307*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89310*/        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)
/* 89320*/      0, /*End of Scope*/
/* 89321*/    /*Scope*/ 48, /*->89370*/
/* 89322*/      OPC_CheckPredicate, 44, // Predicate_atomic_store_8
/* 89324*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 89326*/      OPC_Scope, 20, /*->89348*/ // 2 children in Scope
/* 89328*/        OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #3 #4
/* 89331*/        OPC_EmitMergeInputChains1_0,
/* 89332*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89335*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89338*/        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)
/* 89348*/      /*Scope*/ 20, /*->89369*/
/* 89349*/        OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #3 #4
/* 89352*/        OPC_EmitMergeInputChains1_0,
/* 89353*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89356*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89359*/        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)
/* 89369*/      0, /*End of Scope*/
/* 89370*/    /*Scope*/ 48, /*->89419*/
/* 89371*/      OPC_CheckPredicate, 39, // Predicate_atomic_store_16
/* 89373*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 89375*/      OPC_Scope, 20, /*->89397*/ // 2 children in Scope
/* 89377*/        OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #3 #4
/* 89380*/        OPC_EmitMergeInputChains1_0,
/* 89381*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89384*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89387*/        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)
/* 89397*/      /*Scope*/ 20, /*->89418*/
/* 89398*/        OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #3 #4
/* 89401*/        OPC_EmitMergeInputChains1_0,
/* 89402*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89405*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89408*/        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)
/* 89418*/      0, /*End of Scope*/
/* 89419*/    /*Scope*/ 48, /*->89468*/
/* 89420*/      OPC_CheckPredicate, 76, // Predicate_atomic_store_32
/* 89422*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 89424*/      OPC_Scope, 20, /*->89446*/ // 2 children in Scope
/* 89426*/        OPC_CheckComplexPat, /*CP*/27, /*#*/1, // SelectT2AddrModeImm12:$addr #3 #4
/* 89429*/        OPC_EmitMergeInputChains1_0,
/* 89430*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89433*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89436*/        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)
/* 89446*/      /*Scope*/ 20, /*->89467*/
/* 89447*/        OPC_CheckComplexPat, /*CP*/28, /*#*/1, // SelectT2AddrModeImm8:$addr #3 #4
/* 89450*/        OPC_EmitMergeInputChains1_0,
/* 89451*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89454*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89457*/        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)
/* 89467*/      0, /*End of Scope*/
/* 89468*/    0, /*End of Scope*/
/* 89469*/  /*SwitchOpcode*/ 21|128,2/*277*/, TARGET_VAL(ISD::ROTR),// ->89750
/* 89473*/    OPC_Scope, 29, /*->89504*/ // 6 children in Scope
/* 89475*/      OPC_MoveChild0,
/* 89476*/      OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
/* 89479*/      OPC_RecordChild0, // #0 = $Rm
/* 89480*/      OPC_MoveParent,
/* 89481*/      OPC_CheckChild1Integer, 16, 
/* 89483*/      OPC_CheckChild1Type, MVT::i32,
/* 89485*/      OPC_CheckType, MVT::i32,
/* 89487*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 89489*/      OPC_EmitInteger, MVT::i32, 14, 
/* 89492*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89495*/      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)
/* 89504*/    /*Scope*/ 29, /*->89534*/
/* 89505*/      OPC_RecordNode, // #0 = $src
/* 89506*/      OPC_CheckType, MVT::i32,
/* 89508*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 89510*/      OPC_CheckComplexPat, /*CP*/10, /*#*/0, // SelectShiftRegShifterOperand:$src #1 #2 #3
/* 89513*/      OPC_EmitInteger, MVT::i32, 14, 
/* 89516*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89519*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89522*/      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)
/* 89534*/    /*Scope*/ 50, /*->89585*/
/* 89535*/      OPC_MoveChild0,
/* 89536*/      OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
/* 89539*/      OPC_RecordChild0, // #0 = $Rm
/* 89540*/      OPC_MoveParent,
/* 89541*/      OPC_CheckChild1Integer, 16, 
/* 89543*/      OPC_CheckChild1Type, MVT::i32,
/* 89545*/      OPC_CheckType, MVT::i32,
/* 89547*/      OPC_Scope, 17, /*->89566*/ // 2 children in Scope
/* 89549*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 89551*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89554*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89557*/        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)
/* 89566*/      /*Scope*/ 17, /*->89584*/
/* 89567*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 89569*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89572*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89575*/        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)
/* 89584*/      0, /*End of Scope*/
/* 89585*/    /*Scope*/ 40, /*->89626*/
/* 89586*/      OPC_RecordChild0, // #0 = $lhs
/* 89587*/      OPC_MoveChild1,
/* 89588*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 89591*/      OPC_RecordChild0, // #1 = $rhs
/* 89592*/      OPC_MoveChild1,
/* 89593*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 89596*/      OPC_CheckPredicate, 78, // Predicate_lo5AllOne
/* 89598*/      OPC_MoveParent,
/* 89599*/      OPC_CheckType, MVT::i32,
/* 89601*/      OPC_MoveParent,
/* 89602*/      OPC_CheckType, MVT::i32,
/* 89604*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 89606*/      OPC_EmitInteger, MVT::i32, 14, 
/* 89609*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89612*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89615*/      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)
/* 89626*/    /*Scope*/ 28, /*->89655*/
/* 89627*/      OPC_RecordNode, // #0 = $src
/* 89628*/      OPC_CheckType, MVT::i32,
/* 89630*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 89632*/      OPC_CheckComplexPat, /*CP*/11, /*#*/0, // SelectShiftImmShifterOperand:$src #1 #2
/* 89635*/      OPC_EmitInteger, MVT::i32, 14, 
/* 89638*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89641*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89644*/      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)
/* 89655*/    /*Scope*/ 93, /*->89749*/
/* 89656*/      OPC_RecordChild0, // #0 = $Rm
/* 89657*/      OPC_RecordChild1, // #1 = $imm
/* 89658*/      OPC_Scope, 35, /*->89695*/ // 2 children in Scope
/* 89660*/        OPC_MoveChild1,
/* 89661*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 89664*/        OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 89666*/        OPC_CheckType, MVT::i32,
/* 89668*/        OPC_MoveParent,
/* 89669*/        OPC_CheckType, MVT::i32,
/* 89671*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 89673*/        OPC_EmitConvertToTarget, 1,
/* 89675*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89678*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89681*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89684*/        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)
/* 89695*/      /*Scope*/ 52, /*->89748*/
/* 89696*/        OPC_CheckChild1Type, MVT::i32,
/* 89698*/        OPC_CheckType, MVT::i32,
/* 89700*/        OPC_Scope, 22, /*->89724*/ // 2 children in Scope
/* 89702*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 89704*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 89707*/          OPC_EmitInteger, MVT::i32, 14, 
/* 89710*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89713*/          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)
/* 89724*/        /*Scope*/ 22, /*->89747*/
/* 89725*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 89727*/          OPC_EmitInteger, MVT::i32, 14, 
/* 89730*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89733*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89736*/          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)
/* 89747*/        0, /*End of Scope*/
/* 89748*/      0, /*End of Scope*/
/* 89749*/    0, /*End of Scope*/
/* 89750*/  /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::SRA),// ->90024
/* 89754*/    OPC_Scope, 29, /*->89785*/ // 5 children in Scope
/* 89756*/      OPC_MoveChild0,
/* 89757*/      OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
/* 89760*/      OPC_RecordChild0, // #0 = $Rm
/* 89761*/      OPC_MoveParent,
/* 89762*/      OPC_CheckChild1Integer, 16, 
/* 89764*/      OPC_CheckChild1Type, MVT::i32,
/* 89766*/      OPC_CheckType, MVT::i32,
/* 89768*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 89770*/      OPC_EmitInteger, MVT::i32, 14, 
/* 89773*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89776*/      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)
/* 89785*/    /*Scope*/ 29, /*->89815*/
/* 89786*/      OPC_RecordNode, // #0 = $src
/* 89787*/      OPC_CheckType, MVT::i32,
/* 89789*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 89791*/      OPC_CheckComplexPat, /*CP*/10, /*#*/0, // SelectShiftRegShifterOperand:$src #1 #2 #3
/* 89794*/      OPC_EmitInteger, MVT::i32, 14, 
/* 89797*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89800*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89803*/      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)
/* 89815*/    /*Scope*/ 50, /*->89866*/
/* 89816*/      OPC_MoveChild0,
/* 89817*/      OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
/* 89820*/      OPC_RecordChild0, // #0 = $Rm
/* 89821*/      OPC_MoveParent,
/* 89822*/      OPC_CheckChild1Integer, 16, 
/* 89824*/      OPC_CheckChild1Type, MVT::i32,
/* 89826*/      OPC_CheckType, MVT::i32,
/* 89828*/      OPC_Scope, 17, /*->89847*/ // 2 children in Scope
/* 89830*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 89832*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89835*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89838*/        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)
/* 89847*/      /*Scope*/ 17, /*->89865*/
/* 89848*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 89850*/        OPC_EmitInteger, MVT::i32, 14, 
/* 89853*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89856*/        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)
/* 89865*/      0, /*End of Scope*/
/* 89866*/    /*Scope*/ 28, /*->89895*/
/* 89867*/      OPC_RecordNode, // #0 = $src
/* 89868*/      OPC_CheckType, MVT::i32,
/* 89870*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 89872*/      OPC_CheckComplexPat, /*CP*/11, /*#*/0, // SelectShiftImmShifterOperand:$src #1 #2
/* 89875*/      OPC_EmitInteger, MVT::i32, 14, 
/* 89878*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89881*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89884*/      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)
/* 89895*/    /*Scope*/ 127, /*->90023*/
/* 89896*/      OPC_RecordChild0, // #0 = $Rm
/* 89897*/      OPC_RecordChild1, // #1 = $imm5
/* 89898*/      OPC_Scope, 69, /*->89969*/ // 2 children in Scope
/* 89900*/        OPC_MoveChild1,
/* 89901*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 89904*/        OPC_CheckPredicate, 40, // Predicate_imm_sr
/* 89906*/        OPC_CheckType, MVT::i32,
/* 89908*/        OPC_MoveParent,
/* 89909*/        OPC_CheckType, MVT::i32,
/* 89911*/        OPC_Scope, 27, /*->89940*/ // 2 children in Scope
/* 89913*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 89915*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 89918*/          OPC_EmitConvertToTarget, 1,
/* 89920*/          OPC_EmitNodeXForm, 13, 3, // imm_sr_XFORM
/* 89923*/          OPC_EmitInteger, MVT::i32, 14, 
/* 89926*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89929*/          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))
/* 89940*/        /*Scope*/ 27, /*->89968*/
/* 89941*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 89943*/          OPC_EmitConvertToTarget, 1,
/* 89945*/          OPC_EmitNodeXForm, 13, 2, // imm_sr_XFORM
/* 89948*/          OPC_EmitInteger, MVT::i32, 14, 
/* 89951*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89954*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89957*/          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))
/* 89968*/        0, /*End of Scope*/
/* 89969*/      /*Scope*/ 52, /*->90022*/
/* 89970*/        OPC_CheckChild1Type, MVT::i32,
/* 89972*/        OPC_CheckType, MVT::i32,
/* 89974*/        OPC_Scope, 22, /*->89998*/ // 2 children in Scope
/* 89976*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 89978*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 89981*/          OPC_EmitInteger, MVT::i32, 14, 
/* 89984*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 89987*/          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)
/* 89998*/        /*Scope*/ 22, /*->90021*/
/* 89999*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 90001*/          OPC_EmitInteger, MVT::i32, 14, 
/* 90004*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 90007*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 90010*/          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)
/* 90021*/        0, /*End of Scope*/
/* 90022*/      0, /*End of Scope*/
/* 90023*/    0, /*End of Scope*/
/* 90024*/  /*SwitchOpcode*/ 110, TARGET_VAL(ARMISD::PIC_ADD),// ->90137
/* 90027*/    OPC_Scope, 61, /*->90090*/ // 2 children in Scope
/* 90029*/      OPC_MoveChild0,
/* 90030*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90033*/      OPC_RecordMemRef,
/* 90034*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 90035*/      OPC_CheckFoldableChainNode,
/* 90036*/      OPC_MoveChild1,
/* 90037*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::Wrapper),
/* 90040*/      OPC_RecordChild0, // #1 = $addr
/* 90041*/      OPC_MoveChild0,
/* 90042*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstantPool),
/* 90045*/      OPC_MoveParent,
/* 90046*/      OPC_MoveParent,
/* 90047*/      OPC_CheckPredicate, 37, // Predicate_unindexedload
/* 90049*/      OPC_CheckPredicate, 60, // Predicate_load
/* 90051*/      OPC_MoveParent,
/* 90052*/      OPC_RecordChild1, // #2 = $cp
/* 90053*/      OPC_MoveChild1,
/* 90054*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90057*/      OPC_MoveParent,
/* 90058*/      OPC_CheckType, MVT::i32,
/* 90060*/      OPC_Scope, 13, /*->90075*/ // 2 children in Scope
/* 90062*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 90064*/        OPC_EmitMergeInputChains1_0,
/* 90065*/        OPC_EmitConvertToTarget, 2,
/* 90067*/        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)
/* 90075*/      /*Scope*/ 13, /*->90089*/
/* 90076*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 90078*/        OPC_EmitMergeInputChains1_0,
/* 90079*/        OPC_EmitConvertToTarget, 2,
/* 90081*/        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)
/* 90089*/      0, /*End of Scope*/
/* 90090*/    /*Scope*/ 45, /*->90136*/
/* 90091*/      OPC_RecordChild0, // #0 = $a
/* 90092*/      OPC_RecordChild1, // #1 = $cp
/* 90093*/      OPC_MoveChild1,
/* 90094*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90097*/      OPC_MoveParent,
/* 90098*/      OPC_CheckType, MVT::i32,
/* 90100*/      OPC_Scope, 20, /*->90122*/ // 2 children in Scope
/* 90102*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 90104*/        OPC_EmitConvertToTarget, 1,
/* 90106*/        OPC_EmitInteger, MVT::i32, 14, 
/* 90109*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 90112*/        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)
/* 90122*/      /*Scope*/ 12, /*->90135*/
/* 90123*/        OPC_CheckPatternPredicate, 46, // (Subtarget->isThumb())
/* 90125*/        OPC_EmitConvertToTarget, 1,
/* 90127*/        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)
/* 90135*/      0, /*End of Scope*/
/* 90136*/    0, /*End of Scope*/
/* 90137*/  /*SwitchOpcode*/ 82|128,5/*722*/, TARGET_VAL(ISD::MSTORE),// ->90863
/* 90141*/    OPC_RecordMemRef,
/* 90142*/    OPC_RecordNode, // #0 = 'masked_st' chained node
/* 90143*/    OPC_RecordChild1, // #1 = $val
/* 90144*/    OPC_Scope, 96, /*->90242*/ // 5 children in Scope
/* 90146*/      OPC_CheckChild1Type, MVT::v16i8,
/* 90148*/      OPC_RecordChild2, // #2 = $addr
/* 90149*/      OPC_CheckChild2Type, MVT::i32,
/* 90151*/      OPC_Scope, 29, /*->90182*/ // 2 children in Scope
/* 90153*/        OPC_MoveChild3,
/* 90154*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 90157*/        OPC_MoveParent,
/* 90158*/        OPC_RecordChild4, // #3 = $pred
/* 90159*/        OPC_CheckChild4Type, MVT::v16i1,
/* 90161*/        OPC_CheckPredicate, 79, // Predicate_aligned_maskedstvi8
/* 90163*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90165*/        OPC_CheckComplexPat, /*CP*/30, /*#*/2, // SelectT2AddrModeImm7<0>:$addr #4 #5
/* 90168*/        OPC_EmitMergeInputChains1_0,
/* 90169*/        OPC_EmitInteger, MVT::i32, 1, 
/* 90172*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 1, 4, 5, 6, 3, 
                  // Src: (masked_st MQPR:{ *:[v16i8] }:$val, anonymous_7325:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v16i1] }:$pred)<<P:Predicate_aligned_maskedstvi8>> - Complexity = 16
                  // Dst: (MVE_VSTRBU8 MQPR:{ *:[v16i8] }:$val, anonymous_7325:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred)
/* 90182*/      /*Scope*/ 58, /*->90241*/
/* 90183*/        OPC_RecordChild3, // #3 = $addr
/* 90184*/        OPC_CheckChild3Type, MVT::i32,
/* 90186*/        OPC_RecordChild4, // #4 = $pred
/* 90187*/        OPC_CheckChild4Type, MVT::v16i1,
/* 90189*/        OPC_Scope, 24, /*->90215*/ // 2 children in Scope
/* 90191*/          OPC_CheckPredicate, 80, // Predicate_pre_maskedstore
/* 90193*/          OPC_CheckPredicate, 79, // Predicate_aligned_pre_maskedstorevi8
/* 90195*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90197*/          OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #5
/* 90200*/          OPC_EmitMergeInputChains1_0,
/* 90201*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90204*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_pre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr, VCCR:{ *:[v16i1] }:$pred)<<P:Predicate_pre_maskedstore>><<P:Predicate_aligned_pre_maskedstorevi8>> - Complexity = 10
                    // Dst: (MVE_VSTRBU8_pre:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred)
/* 90215*/        /*Scope*/ 24, /*->90240*/
/* 90216*/          OPC_CheckPredicate, 81, // Predicate_post_maskedstore
/* 90218*/          OPC_CheckPredicate, 79, // Predicate_aligned_post_maskedstorevi8
/* 90220*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90222*/          OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #5
/* 90225*/          OPC_EmitMergeInputChains1_0,
/* 90226*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90229*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRBU8_post), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr, VCCR:{ *:[v16i1] }:$pred)<<P:Predicate_post_maskedstore>><<P:Predicate_aligned_post_maskedstorevi8>> - Complexity = 10
                    // Dst: (MVE_VSTRBU8_post:{ *:[i32] } MQPR:{ *:[v16i8] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred)
/* 90240*/        0, /*End of Scope*/
/* 90241*/      0, /*End of Scope*/
/* 90242*/    /*Scope*/ 45|128,1/*173*/, /*->90417*/
/* 90244*/      OPC_CheckChild1Type, MVT::v8i16,
/* 90246*/      OPC_RecordChild2, // #2 = $addr
/* 90247*/      OPC_CheckChild2Type, MVT::i32,
/* 90249*/      OPC_Scope, 56, /*->90307*/ // 2 children in Scope
/* 90251*/        OPC_MoveChild3,
/* 90252*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 90255*/        OPC_MoveParent,
/* 90256*/        OPC_RecordChild4, // #3 = $pred
/* 90257*/        OPC_CheckChild4Type, MVT::v8i1,
/* 90259*/        OPC_Scope, 21, /*->90282*/ // 2 children in Scope
/* 90261*/          OPC_CheckPredicate, 82, // Predicate_aligned_maskedstvi16
/* 90263*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90265*/          OPC_CheckComplexPat, /*CP*/31, /*#*/2, // SelectT2AddrModeImm7<1>:$addr #4 #5
/* 90268*/          OPC_EmitMergeInputChains1_0,
/* 90269*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90272*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 4, 5, 6, 3, 
                    // Src: (masked_st MQPR:{ *:[v8i16] }:$val, anonymous_7327:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v8i1] }:$pred)<<P:Predicate_aligned_maskedstvi16>> - Complexity = 16
                    // Dst: (MVE_VSTRHU16 MQPR:{ *:[v8i16] }:$val, anonymous_7327:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 90282*/        /*Scope*/ 23, /*->90306*/
/* 90283*/          OPC_CheckPredicate, 83, // Predicate_truncmaskedst
/* 90285*/          OPC_CheckPredicate, 79, // Predicate_aligned_truncmaskedstvi8
/* 90287*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90289*/          OPC_CheckComplexPat, /*CP*/36, /*#*/2, // SelectTAddrModeImm7<0>:$addr #4 #5
/* 90292*/          OPC_EmitMergeInputChains1_0,
/* 90293*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90296*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRB16), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 4, 5, 6, 3, 
                    // Src: (masked_st MQPR:{ *:[v8i16] }:$val, anonymous_7319:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v8i1] }:$pred)<<P:Predicate_truncmaskedst>><<P:Predicate_aligned_truncmaskedstvi8>> - Complexity = 16
                    // Dst: (MVE_VSTRB16 MQPR:{ *:[v8i16] }:$val, anonymous_7319:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 90306*/        0, /*End of Scope*/
/* 90307*/      /*Scope*/ 108, /*->90416*/
/* 90308*/        OPC_RecordChild3, // #3 = $addr
/* 90309*/        OPC_CheckChild3Type, MVT::i32,
/* 90311*/        OPC_RecordChild4, // #4 = $pred
/* 90312*/        OPC_CheckChild4Type, MVT::v8i1,
/* 90314*/        OPC_Scope, 24, /*->90340*/ // 4 children in Scope
/* 90316*/          OPC_CheckPredicate, 80, // Predicate_pre_maskedstore
/* 90318*/          OPC_CheckPredicate, 82, // Predicate_aligned_pre_maskedstorevi16
/* 90320*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90322*/          OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #5
/* 90325*/          OPC_EmitMergeInputChains1_0,
/* 90326*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90329*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_pre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr, VCCR:{ *:[v8i1] }:$pred)<<P:Predicate_pre_maskedstore>><<P:Predicate_aligned_pre_maskedstorevi16>> - Complexity = 10
                    // Dst: (MVE_VSTRHU16_pre:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 90340*/        /*Scope*/ 24, /*->90365*/
/* 90341*/          OPC_CheckPredicate, 81, // Predicate_post_maskedstore
/* 90343*/          OPC_CheckPredicate, 82, // Predicate_aligned_post_maskedstorevi16
/* 90345*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90347*/          OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #5
/* 90350*/          OPC_EmitMergeInputChains1_0,
/* 90351*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90354*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_post), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr, VCCR:{ *:[v8i1] }:$pred)<<P:Predicate_post_maskedstore>><<P:Predicate_aligned_post_maskedstorevi16>> - Complexity = 10
                    // Dst: (MVE_VSTRHU16_post:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 90365*/        /*Scope*/ 24, /*->90390*/
/* 90366*/          OPC_CheckPredicate, 84, // Predicate_post_truncmaskedst
/* 90368*/          OPC_CheckPredicate, 79, // Predicate_aligned_post_truncmaskedstvi8
/* 90370*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90372*/          OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #5
/* 90375*/          OPC_EmitMergeInputChains1_0,
/* 90376*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90379*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRB16_post), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr, VCCR:{ *:[v8i1] }:$pred)<<P:Predicate_post_truncmaskedst>><<P:Predicate_aligned_post_truncmaskedstvi8>> - Complexity = 10
                    // Dst: (MVE_VSTRB16_post:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 90390*/        /*Scope*/ 24, /*->90415*/
/* 90391*/          OPC_CheckPredicate, 85, // Predicate_pre_truncmaskedst
/* 90393*/          OPC_CheckPredicate, 79, // Predicate_aligned_pre_truncmaskedstvi8
/* 90395*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90397*/          OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #5
/* 90400*/          OPC_EmitMergeInputChains1_0,
/* 90401*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90404*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRB16_pre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr, VCCR:{ *:[v8i1] }:$pred)<<P:Predicate_pre_truncmaskedst>><<P:Predicate_aligned_pre_truncmaskedstvi8>> - Complexity = 10
                    // Dst: (MVE_VSTRB16_pre:{ *:[i32] } MQPR:{ *:[v8i16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 90415*/        0, /*End of Scope*/
/* 90416*/      0, /*End of Scope*/
/* 90417*/    /*Scope*/ 96, /*->90514*/
/* 90418*/      OPC_CheckChild1Type, MVT::v8f16,
/* 90420*/      OPC_RecordChild2, // #2 = $addr
/* 90421*/      OPC_CheckChild2Type, MVT::i32,
/* 90423*/      OPC_Scope, 29, /*->90454*/ // 2 children in Scope
/* 90425*/        OPC_MoveChild3,
/* 90426*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 90429*/        OPC_MoveParent,
/* 90430*/        OPC_RecordChild4, // #3 = $pred
/* 90431*/        OPC_CheckChild4Type, MVT::v8i1,
/* 90433*/        OPC_CheckPredicate, 82, // Predicate_aligned_maskedstvi16
/* 90435*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90437*/        OPC_CheckComplexPat, /*CP*/31, /*#*/2, // SelectT2AddrModeImm7<1>:$addr #4 #5
/* 90440*/        OPC_EmitMergeInputChains1_0,
/* 90441*/        OPC_EmitInteger, MVT::i32, 1, 
/* 90444*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 1, 4, 5, 6, 3, 
                  // Src: (masked_st MQPR:{ *:[v8f16] }:$val, anonymous_7327:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v8i1] }:$pred)<<P:Predicate_aligned_maskedstvi16>> - Complexity = 16
                  // Dst: (MVE_VSTRHU16 MQPR:{ *:[v8f16] }:$val, anonymous_7327:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 90454*/      /*Scope*/ 58, /*->90513*/
/* 90455*/        OPC_RecordChild3, // #3 = $addr
/* 90456*/        OPC_CheckChild3Type, MVT::i32,
/* 90458*/        OPC_RecordChild4, // #4 = $pred
/* 90459*/        OPC_CheckChild4Type, MVT::v8i1,
/* 90461*/        OPC_Scope, 24, /*->90487*/ // 2 children in Scope
/* 90463*/          OPC_CheckPredicate, 80, // Predicate_pre_maskedstore
/* 90465*/          OPC_CheckPredicate, 82, // Predicate_aligned_pre_maskedstorevi16
/* 90467*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90469*/          OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #5
/* 90472*/          OPC_EmitMergeInputChains1_0,
/* 90473*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90476*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_pre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr, VCCR:{ *:[v8i1] }:$pred)<<P:Predicate_pre_maskedstore>><<P:Predicate_aligned_pre_maskedstorevi16>> - Complexity = 10
                    // Dst: (MVE_VSTRHU16_pre:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 90487*/        /*Scope*/ 24, /*->90512*/
/* 90488*/          OPC_CheckPredicate, 81, // Predicate_post_maskedstore
/* 90490*/          OPC_CheckPredicate, 82, // Predicate_aligned_post_maskedstorevi16
/* 90492*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90494*/          OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #5
/* 90497*/          OPC_EmitMergeInputChains1_0,
/* 90498*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90501*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRHU16_post), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr, VCCR:{ *:[v8i1] }:$pred)<<P:Predicate_post_maskedstore>><<P:Predicate_aligned_post_maskedstorevi16>> - Complexity = 10
                    // Dst: (MVE_VSTRHU16_post:{ *:[i32] } MQPR:{ *:[v8f16] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/* 90512*/        0, /*End of Scope*/
/* 90513*/      0, /*End of Scope*/
/* 90514*/    /*Scope*/ 121|128,1/*249*/, /*->90765*/
/* 90516*/      OPC_CheckChild1Type, MVT::v4i32,
/* 90518*/      OPC_RecordChild2, // #2 = $addr
/* 90519*/      OPC_CheckChild2Type, MVT::i32,
/* 90521*/      OPC_Scope, 81, /*->90604*/ // 2 children in Scope
/* 90523*/        OPC_MoveChild3,
/* 90524*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 90527*/        OPC_MoveParent,
/* 90528*/        OPC_RecordChild4, // #3 = $pred
/* 90529*/        OPC_CheckChild4Type, MVT::v4i1,
/* 90531*/        OPC_Scope, 21, /*->90554*/ // 2 children in Scope
/* 90533*/          OPC_CheckPredicate, 86, // Predicate_aligned_maskedstvi32
/* 90535*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90537*/          OPC_CheckComplexPat, /*CP*/32, /*#*/2, // SelectT2AddrModeImm7<2>:$addr #4 #5
/* 90540*/          OPC_EmitMergeInputChains1_0,
/* 90541*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90544*/          OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                        5/*#Ops*/, 1, 4, 5, 6, 3, 
                    // Src: (masked_st MQPR:{ *:[v4i32] }:$val, anonymous_7329:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v4i1] }:$pred)<<P:Predicate_aligned_maskedstvi32>> - Complexity = 16
                    // Dst: (MVE_VSTRWU32 MQPR:{ *:[v4i32] }:$val, anonymous_7329:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 90554*/        /*Scope*/ 48, /*->90603*/
/* 90555*/          OPC_CheckPredicate, 83, // Predicate_truncmaskedst
/* 90557*/          OPC_Scope, 21, /*->90580*/ // 2 children in Scope
/* 90559*/            OPC_CheckPredicate, 79, // Predicate_aligned_truncmaskedstvi8
/* 90561*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90563*/            OPC_CheckComplexPat, /*CP*/36, /*#*/2, // SelectTAddrModeImm7<0>:$addr #4 #5
/* 90566*/            OPC_EmitMergeInputChains1_0,
/* 90567*/            OPC_EmitInteger, MVT::i32, 1, 
/* 90570*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRB32), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 4, 5, 6, 3, 
                      // Src: (masked_st MQPR:{ *:[v4i32] }:$val, anonymous_7319:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v4i1] }:$pred)<<P:Predicate_truncmaskedst>><<P:Predicate_aligned_truncmaskedstvi8>> - Complexity = 16
                      // Dst: (MVE_VSTRB32 MQPR:{ *:[v4i32] }:$val, anonymous_7319:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 90580*/          /*Scope*/ 21, /*->90602*/
/* 90581*/            OPC_CheckPredicate, 82, // Predicate_aligned_truncmaskedstvi16
/* 90583*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90585*/            OPC_CheckComplexPat, /*CP*/37, /*#*/2, // SelectTAddrModeImm7<1>:$addr #4 #5
/* 90588*/            OPC_EmitMergeInputChains1_0,
/* 90589*/            OPC_EmitInteger, MVT::i32, 1, 
/* 90592*/            OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRH32), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 1, 4, 5, 6, 3, 
                      // Src: (masked_st MQPR:{ *:[v4i32] }:$val, anonymous_7322:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v4i1] }:$pred)<<P:Predicate_truncmaskedst>><<P:Predicate_aligned_truncmaskedstvi16>> - Complexity = 16
                      // Dst: (MVE_VSTRH32 MQPR:{ *:[v4i32] }:$val, anonymous_7322:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 90602*/          0, /*End of Scope*/
/* 90603*/        0, /*End of Scope*/
/* 90604*/      /*Scope*/ 30|128,1/*158*/, /*->90764*/
/* 90606*/        OPC_RecordChild3, // #3 = $addr
/* 90607*/        OPC_CheckChild3Type, MVT::i32,
/* 90609*/        OPC_RecordChild4, // #4 = $pred
/* 90610*/        OPC_CheckChild4Type, MVT::v4i1,
/* 90612*/        OPC_Scope, 24, /*->90638*/ // 6 children in Scope
/* 90614*/          OPC_CheckPredicate, 80, // Predicate_pre_maskedstore
/* 90616*/          OPC_CheckPredicate, 86, // Predicate_aligned_pre_maskedstorevi32
/* 90618*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90620*/          OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #5
/* 90623*/          OPC_EmitMergeInputChains1_0,
/* 90624*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90627*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr, VCCR:{ *:[v4i1] }:$pred)<<P:Predicate_pre_maskedstore>><<P:Predicate_aligned_pre_maskedstorevi32>> - Complexity = 10
                    // Dst: (MVE_VSTRWU32_pre:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 90638*/        /*Scope*/ 24, /*->90663*/
/* 90639*/          OPC_CheckPredicate, 81, // Predicate_post_maskedstore
/* 90641*/          OPC_CheckPredicate, 86, // Predicate_aligned_post_maskedstorevi32
/* 90643*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90645*/          OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #5
/* 90648*/          OPC_EmitMergeInputChains1_0,
/* 90649*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90652*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_post), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr, VCCR:{ *:[v4i1] }:$pred)<<P:Predicate_post_maskedstore>><<P:Predicate_aligned_post_maskedstorevi32>> - Complexity = 10
                    // Dst: (MVE_VSTRWU32_post:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 90663*/        /*Scope*/ 24, /*->90688*/
/* 90664*/          OPC_CheckPredicate, 84, // Predicate_post_truncmaskedst
/* 90666*/          OPC_CheckPredicate, 79, // Predicate_aligned_post_truncmaskedstvi8
/* 90668*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90670*/          OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #5
/* 90673*/          OPC_EmitMergeInputChains1_0,
/* 90674*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90677*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRB32_post), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr, VCCR:{ *:[v4i1] }:$pred)<<P:Predicate_post_truncmaskedst>><<P:Predicate_aligned_post_truncmaskedstvi8>> - Complexity = 10
                    // Dst: (MVE_VSTRB32_post:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 90688*/        /*Scope*/ 24, /*->90713*/
/* 90689*/          OPC_CheckPredicate, 85, // Predicate_pre_truncmaskedst
/* 90691*/          OPC_CheckPredicate, 79, // Predicate_aligned_pre_truncmaskedstvi8
/* 90693*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90695*/          OPC_CheckComplexPat, /*CP*/33, /*#*/3, // SelectT2AddrModeImm7Offset<0>:$addr #5
/* 90698*/          OPC_EmitMergeInputChains1_0,
/* 90699*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90702*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRB32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr, VCCR:{ *:[v4i1] }:$pred)<<P:Predicate_pre_truncmaskedst>><<P:Predicate_aligned_pre_truncmaskedstvi8>> - Complexity = 10
                    // Dst: (MVE_VSTRB32_pre:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7321:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 90713*/        /*Scope*/ 24, /*->90738*/
/* 90714*/          OPC_CheckPredicate, 84, // Predicate_post_truncmaskedst
/* 90716*/          OPC_CheckPredicate, 82, // Predicate_aligned_post_truncmaskedstvi16
/* 90718*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90720*/          OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #5
/* 90723*/          OPC_EmitMergeInputChains1_0,
/* 90724*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90727*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRH32_post), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr, VCCR:{ *:[v4i1] }:$pred)<<P:Predicate_post_truncmaskedst>><<P:Predicate_aligned_post_truncmaskedstvi16>> - Complexity = 10
                    // Dst: (MVE_VSTRH32_post:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 90738*/        /*Scope*/ 24, /*->90763*/
/* 90739*/          OPC_CheckPredicate, 85, // Predicate_pre_truncmaskedst
/* 90741*/          OPC_CheckPredicate, 82, // Predicate_aligned_pre_truncmaskedstvi16
/* 90743*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90745*/          OPC_CheckComplexPat, /*CP*/34, /*#*/3, // SelectT2AddrModeImm7Offset<1>:$addr #5
/* 90748*/          OPC_EmitMergeInputChains1_0,
/* 90749*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90752*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRH32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr, VCCR:{ *:[v4i1] }:$pred)<<P:Predicate_pre_truncmaskedst>><<P:Predicate_aligned_pre_truncmaskedstvi16>> - Complexity = 10
                    // Dst: (MVE_VSTRH32_pre:{ *:[i32] } MQPR:{ *:[v4i32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7324:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 90763*/        0, /*End of Scope*/
/* 90764*/      0, /*End of Scope*/
/* 90765*/    /*Scope*/ 96, /*->90862*/
/* 90766*/      OPC_CheckChild1Type, MVT::v4f32,
/* 90768*/      OPC_RecordChild2, // #2 = $addr
/* 90769*/      OPC_CheckChild2Type, MVT::i32,
/* 90771*/      OPC_Scope, 29, /*->90802*/ // 2 children in Scope
/* 90773*/        OPC_MoveChild3,
/* 90774*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 90777*/        OPC_MoveParent,
/* 90778*/        OPC_RecordChild4, // #3 = $pred
/* 90779*/        OPC_CheckChild4Type, MVT::v4i1,
/* 90781*/        OPC_CheckPredicate, 86, // Predicate_aligned_maskedstvi32
/* 90783*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90785*/        OPC_CheckComplexPat, /*CP*/32, /*#*/2, // SelectT2AddrModeImm7<2>:$addr #4 #5
/* 90788*/        OPC_EmitMergeInputChains1_0,
/* 90789*/        OPC_EmitInteger, MVT::i32, 1, 
/* 90792*/        OPC_MorphNodeTo0, TARGET_VAL(ARM::MVE_VSTRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 1, 4, 5, 6, 3, 
                  // Src: (masked_st MQPR:{ *:[v4f32] }:$val, anonymous_7329:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v4i1] }:$pred)<<P:Predicate_aligned_maskedstvi32>> - Complexity = 16
                  // Dst: (MVE_VSTRWU32 MQPR:{ *:[v4f32] }:$val, anonymous_7329:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 90802*/      /*Scope*/ 58, /*->90861*/
/* 90803*/        OPC_RecordChild3, // #3 = $addr
/* 90804*/        OPC_CheckChild3Type, MVT::i32,
/* 90806*/        OPC_RecordChild4, // #4 = $pred
/* 90807*/        OPC_CheckChild4Type, MVT::v4i1,
/* 90809*/        OPC_Scope, 24, /*->90835*/ // 2 children in Scope
/* 90811*/          OPC_CheckPredicate, 80, // Predicate_pre_maskedstore
/* 90813*/          OPC_CheckPredicate, 86, // Predicate_aligned_pre_maskedstorevi32
/* 90815*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90817*/          OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #5
/* 90820*/          OPC_EmitMergeInputChains1_0,
/* 90821*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90824*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_pre), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr, VCCR:{ *:[v4i1] }:$pred)<<P:Predicate_pre_maskedstore>><<P:Predicate_aligned_pre_maskedstorevi32>> - Complexity = 10
                    // Dst: (MVE_VSTRWU32_pre:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 90835*/        /*Scope*/ 24, /*->90860*/
/* 90836*/          OPC_CheckPredicate, 81, // Predicate_post_maskedstore
/* 90838*/          OPC_CheckPredicate, 86, // Predicate_aligned_post_maskedstorevi32
/* 90840*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 90842*/          OPC_CheckComplexPat, /*CP*/35, /*#*/3, // SelectT2AddrModeImm7Offset<2>:$addr #5
/* 90845*/          OPC_EmitMergeInputChains1_0,
/* 90846*/          OPC_EmitInteger, MVT::i32, 1, 
/* 90849*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSTRWU32_post), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 5, 6, 4, 
                    // Src: (masked_st MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr, VCCR:{ *:[v4i1] }:$pred)<<P:Predicate_post_maskedstore>><<P:Predicate_aligned_post_maskedstorevi32>> - Complexity = 10
                    // Dst: (MVE_VSTRWU32_post:{ *:[i32] } MQPR:{ *:[v4f32] }:$Rt, tGPR:{ *:[i32] }:$Rn, anonymous_7331:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/* 90860*/        0, /*End of Scope*/
/* 90861*/      0, /*End of Scope*/
/* 90862*/    0, /*End of Scope*/
/* 90863*/  /*SwitchOpcode*/ 61, TARGET_VAL(ARMISD::BCC_i64),// ->90927
/* 90866*/    OPC_RecordNode, // #0 = 'ARMBcci64' chained node
/* 90867*/    OPC_RecordChild1, // #1 = $cc
/* 90868*/    OPC_MoveChild1,
/* 90869*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90872*/    OPC_MoveParent,
/* 90873*/    OPC_RecordChild2, // #2 = $lhs1
/* 90874*/    OPC_RecordChild3, // #3 = $lhs2
/* 90875*/    OPC_Scope, 25, /*->90902*/ // 2 children in Scope
/* 90877*/      OPC_CheckChild4Integer, 0, 
/* 90879*/      OPC_MoveChild5,
/* 90880*/      OPC_CheckInteger, 0, 
/* 90882*/      OPC_MoveParent,
/* 90883*/      OPC_RecordChild6, // #4 = $dst
/* 90884*/      OPC_MoveChild6,
/* 90885*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 90888*/      OPC_MoveParent,
/* 90889*/      OPC_EmitMergeInputChains1_0,
/* 90890*/      OPC_EmitConvertToTarget, 1,
/* 90892*/      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)
/* 90902*/    /*Scope*/ 23, /*->90926*/
/* 90903*/      OPC_RecordChild4, // #4 = $rhs1
/* 90904*/      OPC_RecordChild5, // #5 = $rhs2
/* 90905*/      OPC_RecordChild6, // #6 = $dst
/* 90906*/      OPC_MoveChild6,
/* 90907*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/* 90910*/      OPC_MoveParent,
/* 90911*/      OPC_EmitMergeInputChains1_0,
/* 90912*/      OPC_EmitConvertToTarget, 1,
/* 90914*/      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)
/* 90926*/    0, /*End of Scope*/
/* 90927*/  /*SwitchOpcode*/ 1|128,19/*2433*/, TARGET_VAL(ISD::SUB),// ->93364
/* 90931*/    OPC_Scope, 40|128,1/*168*/, /*->91102*/ // 7 children in Scope
/* 90934*/      OPC_RecordChild0, // #0 = $Rn
/* 90935*/      OPC_RecordChild1, // #1 = $shift
/* 90936*/      OPC_CheckType, MVT::i32,
/* 90938*/      OPC_Scope, 106, /*->91046*/ // 2 children in Scope
/* 90940*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 90942*/        OPC_Scope, 25, /*->90969*/ // 4 children in Scope
/* 90944*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 90947*/          OPC_EmitInteger, MVT::i32, 14, 
/* 90950*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 90953*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 90956*/          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)
/* 90969*/        /*Scope*/ 25, /*->90995*/
/* 90970*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 90973*/          OPC_EmitInteger, MVT::i32, 14, 
/* 90976*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 90979*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 90982*/          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)
/* 90995*/        /*Scope*/ 24, /*->91020*/
/* 90996*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 90999*/          OPC_EmitInteger, MVT::i32, 14, 
/* 91002*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91005*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91008*/          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)
/* 91020*/        /*Scope*/ 24, /*->91045*/
/* 91021*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 91024*/          OPC_EmitInteger, MVT::i32, 14, 
/* 91027*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91030*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91033*/          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)
/* 91045*/        0, /*End of Scope*/
/* 91046*/      /*Scope*/ 54, /*->91101*/
/* 91047*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 91049*/        OPC_Scope, 24, /*->91075*/ // 2 children in Scope
/* 91051*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 91054*/          OPC_EmitInteger, MVT::i32, 14, 
/* 91057*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91060*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91063*/          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)
/* 91075*/        /*Scope*/ 24, /*->91100*/
/* 91076*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 91079*/          OPC_EmitInteger, MVT::i32, 14, 
/* 91082*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91085*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91088*/          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)
/* 91100*/        0, /*End of Scope*/
/* 91101*/      0, /*End of Scope*/
/* 91102*/    /*Scope*/ 26, /*->91129*/
/* 91103*/      OPC_CheckChild0Integer, 0, 
/* 91105*/      OPC_RecordChild1, // #0 = $Rn
/* 91106*/      OPC_CheckType, MVT::i32,
/* 91108*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 91110*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 91113*/      OPC_EmitInteger, MVT::i32, 14, 
/* 91116*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91119*/      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)
/* 91129*/    /*Scope*/ 43|128,2/*299*/, /*->91430*/
/* 91131*/      OPC_RecordChild0, // #0 = $Rn
/* 91132*/      OPC_Scope, 34, /*->91168*/ // 6 children in Scope
/* 91134*/        OPC_RecordChild1, // #1 = $imm
/* 91135*/        OPC_MoveChild1,
/* 91136*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91139*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 91141*/        OPC_MoveParent,
/* 91142*/        OPC_CheckType, MVT::i32,
/* 91144*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 91146*/        OPC_EmitConvertToTarget, 1,
/* 91148*/        OPC_EmitInteger, MVT::i32, 14, 
/* 91151*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91154*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91157*/        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)
/* 91168*/      /*Scope*/ 34, /*->91203*/
/* 91169*/        OPC_MoveChild0,
/* 91170*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91173*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 91175*/        OPC_MoveParent,
/* 91176*/        OPC_RecordChild1, // #1 = $Rn
/* 91177*/        OPC_CheckType, MVT::i32,
/* 91179*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 91181*/        OPC_EmitConvertToTarget, 0,
/* 91183*/        OPC_EmitInteger, MVT::i32, 14, 
/* 91186*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91189*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91192*/        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)
/* 91203*/      /*Scope*/ 63, /*->91267*/
/* 91204*/        OPC_RecordChild1, // #1 = $imm
/* 91205*/        OPC_MoveChild1,
/* 91206*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91209*/        OPC_Scope, 29, /*->91240*/ // 2 children in Scope
/* 91211*/          OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 91213*/          OPC_MoveParent,
/* 91214*/          OPC_CheckType, MVT::i32,
/* 91216*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 91218*/          OPC_EmitConvertToTarget, 1,
/* 91220*/          OPC_EmitInteger, MVT::i32, 14, 
/* 91223*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91226*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91229*/          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)
/* 91240*/        /*Scope*/ 25, /*->91266*/
/* 91241*/          OPC_CheckPredicate, 9, // Predicate_imm0_4095
/* 91243*/          OPC_MoveParent,
/* 91244*/          OPC_CheckType, MVT::i32,
/* 91246*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 91248*/          OPC_EmitConvertToTarget, 1,
/* 91250*/          OPC_EmitInteger, MVT::i32, 14, 
/* 91253*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91256*/          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)
/* 91266*/        0, /*End of Scope*/
/* 91267*/      /*Scope*/ 34, /*->91302*/
/* 91268*/        OPC_MoveChild0,
/* 91269*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91272*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 91274*/        OPC_MoveParent,
/* 91275*/        OPC_RecordChild1, // #1 = $Rn
/* 91276*/        OPC_CheckType, MVT::i32,
/* 91278*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 91280*/        OPC_EmitConvertToTarget, 0,
/* 91282*/        OPC_EmitInteger, MVT::i32, 14, 
/* 91285*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91288*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91291*/        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)
/* 91302*/      /*Scope*/ 51, /*->91354*/
/* 91303*/        OPC_MoveChild1,
/* 91304*/        OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/* 91307*/        OPC_RecordChild0, // #1 = $Rn
/* 91308*/        OPC_RecordChild1, // #2 = $Rm
/* 91309*/        OPC_MoveParent,
/* 91310*/        OPC_CheckType, MVT::i32,
/* 91312*/        OPC_Scope, 19, /*->91333*/ // 2 children in Scope
/* 91314*/          OPC_CheckPatternPredicate, 65, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps())
/* 91316*/          OPC_EmitInteger, MVT::i32, 14, 
/* 91319*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91322*/          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)
/* 91333*/        /*Scope*/ 19, /*->91353*/
/* 91334*/          OPC_CheckPatternPredicate, 14, // (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 91336*/          OPC_EmitInteger, MVT::i32, 14, 
/* 91339*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91342*/          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)
/* 91353*/        0, /*End of Scope*/
/* 91354*/      /*Scope*/ 74, /*->91429*/
/* 91355*/        OPC_RecordChild1, // #1 = $Rm
/* 91356*/        OPC_CheckType, MVT::i32,
/* 91358*/        OPC_Scope, 22, /*->91382*/ // 3 children in Scope
/* 91360*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 91362*/          OPC_EmitInteger, MVT::i32, 14, 
/* 91365*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91368*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91371*/          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)
/* 91382*/        /*Scope*/ 22, /*->91405*/
/* 91383*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 91385*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 91388*/          OPC_EmitInteger, MVT::i32, 14, 
/* 91391*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91394*/          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)
/* 91405*/        /*Scope*/ 22, /*->91428*/
/* 91406*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 91408*/          OPC_EmitInteger, MVT::i32, 14, 
/* 91411*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91414*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91417*/          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)
/* 91428*/        0, /*End of Scope*/
/* 91429*/      0, /*End of Scope*/
/* 91430*/    /*Scope*/ 35|128,1/*163*/, /*->91595*/
/* 91432*/      OPC_MoveChild0,
/* 91433*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 91436*/      OPC_MoveChild0,
/* 91437*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/* 91440*/      OPC_MoveChild0,
/* 91441*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 91444*/      OPC_MoveParent,
/* 91445*/      OPC_CheckPredicate, 87, // Predicate_NEONimmAllZerosV
/* 91447*/      OPC_SwitchType /*2 cases */, 43, MVT::v2i32,// ->91493
/* 91450*/        OPC_MoveParent,
/* 91451*/        OPC_MoveParent,
/* 91452*/        OPC_RecordChild1, // #0 = $Vm
/* 91453*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i8,// ->91473
/* 91456*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 91458*/          OPC_EmitInteger, MVT::i32, 14, 
/* 91461*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91464*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs8d), 0,
                        MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (sub:{ *:[v8i8] } (bitconvert:{ *:[v8i8] } (ARMvmovImm:{ *:[v2i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>), DPR:{ *:[v8i8] }:$Vm) - Complexity = 13
                    // Dst: (VNEGs8d:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/* 91473*/        /*SwitchType*/ 17, MVT::v4i16,// ->91492
/* 91475*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 91477*/          OPC_EmitInteger, MVT::i32, 14, 
/* 91480*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91483*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs16d), 0,
                        MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (sub:{ *:[v4i16] } (bitconvert:{ *:[v4i16] } (ARMvmovImm:{ *:[v2i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>), DPR:{ *:[v4i16] }:$Vm) - Complexity = 13
                    // Dst: (VNEGs16d:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/* 91492*/        0, // EndSwitchType
/* 91493*/      /*SwitchType*/ 99, MVT::v4i32,// ->91594
/* 91495*/        OPC_MoveParent,
/* 91496*/        OPC_MoveParent,
/* 91497*/        OPC_RecordChild1, // #0 = $Vm
/* 91498*/        OPC_SwitchType /*2 cases */, 45, MVT::v16i8,// ->91546
/* 91501*/          OPC_Scope, 17, /*->91520*/ // 2 children in Scope
/* 91503*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 91505*/            OPC_EmitInteger, MVT::i32, 14, 
/* 91508*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91511*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs8q), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>), QPR:{ *:[v16i8] }:$Vm) - Complexity = 13
                      // Dst: (VNEGs8q:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/* 91520*/          /*Scope*/ 24, /*->91545*/
/* 91521*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 91523*/            OPC_EmitInteger, MVT::i32, 0, 
/* 91526*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91529*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 91535*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VNEGs8), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (sub:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>), MQPR:{ *:[v16i8] }:$v) - Complexity = 13
                      // Dst: (MVE_VNEGs8:{ *:[v16i8] } ?:{ *:[v16i8] }:$v)
/* 91545*/          0, /*End of Scope*/
/* 91546*/        /*SwitchType*/ 45, MVT::v8i16,// ->91593
/* 91548*/          OPC_Scope, 17, /*->91567*/ // 2 children in Scope
/* 91550*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 91552*/            OPC_EmitInteger, MVT::i32, 14, 
/* 91555*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91558*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs16q), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>), QPR:{ *:[v8i16] }:$Vm) - Complexity = 13
                      // Dst: (VNEGs16q:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/* 91567*/          /*Scope*/ 24, /*->91592*/
/* 91568*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 91570*/            OPC_EmitInteger, MVT::i32, 0, 
/* 91573*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91576*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 91582*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VNEGs16), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (sub:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>), MQPR:{ *:[v8i16] }:$v) - Complexity = 13
                      // Dst: (MVE_VNEGs16:{ *:[v8i16] } ?:{ *:[v8i16] }:$v)
/* 91592*/          0, /*End of Scope*/
/* 91593*/        0, // EndSwitchType
/* 91594*/      0, // EndSwitchType
/* 91595*/    /*Scope*/ 38|128,5/*678*/, /*->92275*/
/* 91597*/      OPC_RecordChild0, // #0 = $src1
/* 91598*/      OPC_MoveChild1,
/* 91599*/      OPC_SwitchOpcode /*3 cases */, 106|128,3/*490*/, TARGET_VAL(ISD::MUL),// ->92094
/* 91604*/        OPC_Scope, 2|128,1/*130*/, /*->91737*/ // 4 children in Scope
/* 91607*/          OPC_RecordChild0, // #1 = $Vn
/* 91608*/          OPC_MoveChild1,
/* 91609*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 91612*/          OPC_RecordChild0, // #2 = $Vm
/* 91613*/          OPC_Scope, 60, /*->91675*/ // 2 children in Scope
/* 91615*/            OPC_CheckChild0Type, MVT::v4i16,
/* 91617*/            OPC_RecordChild1, // #3 = $lane
/* 91618*/            OPC_MoveChild1,
/* 91619*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91622*/            OPC_MoveParent,
/* 91623*/            OPC_MoveParent,
/* 91624*/            OPC_MoveParent,
/* 91625*/            OPC_SwitchType /*2 cases */, 22, MVT::v4i16,// ->91650
/* 91628*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 91630*/              OPC_EmitConvertToTarget, 3,
/* 91632*/              OPC_EmitInteger, MVT::i32, 14, 
/* 91635*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91638*/              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, (ARMvduplane:{ *:[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)
/* 91650*/            /*SwitchType*/ 22, MVT::v8i16,// ->91674
/* 91652*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 91654*/              OPC_EmitConvertToTarget, 3,
/* 91656*/              OPC_EmitInteger, MVT::i32, 14, 
/* 91659*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91662*/              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, (ARMvduplane:{ *:[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)
/* 91674*/            0, // EndSwitchType
/* 91675*/          /*Scope*/ 60, /*->91736*/
/* 91676*/            OPC_CheckChild0Type, MVT::v2i32,
/* 91678*/            OPC_RecordChild1, // #3 = $lane
/* 91679*/            OPC_MoveChild1,
/* 91680*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91683*/            OPC_MoveParent,
/* 91684*/            OPC_MoveParent,
/* 91685*/            OPC_MoveParent,
/* 91686*/            OPC_SwitchType /*2 cases */, 22, MVT::v2i32,// ->91711
/* 91689*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 91691*/              OPC_EmitConvertToTarget, 3,
/* 91693*/              OPC_EmitInteger, MVT::i32, 14, 
/* 91696*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91699*/              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, (ARMvduplane:{ *:[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)
/* 91711*/            /*SwitchType*/ 22, MVT::v4i32,// ->91735
/* 91713*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 91715*/              OPC_EmitConvertToTarget, 3,
/* 91717*/              OPC_EmitInteger, MVT::i32, 14, 
/* 91720*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91723*/              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, (ARMvduplane:{ *:[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)
/* 91735*/            0, // EndSwitchType
/* 91736*/          0, /*End of Scope*/
/* 91737*/        /*Scope*/ 3|128,1/*131*/, /*->91870*/
/* 91739*/          OPC_MoveChild0,
/* 91740*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 91743*/          OPC_RecordChild0, // #1 = $Vm
/* 91744*/          OPC_Scope, 61, /*->91807*/ // 2 children in Scope
/* 91746*/            OPC_CheckChild0Type, MVT::v4i16,
/* 91748*/            OPC_RecordChild1, // #2 = $lane
/* 91749*/            OPC_MoveChild1,
/* 91750*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91753*/            OPC_MoveParent,
/* 91754*/            OPC_MoveParent,
/* 91755*/            OPC_RecordChild1, // #3 = $Vn
/* 91756*/            OPC_MoveParent,
/* 91757*/            OPC_SwitchType /*2 cases */, 22, MVT::v4i16,// ->91782
/* 91760*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 91762*/              OPC_EmitConvertToTarget, 2,
/* 91764*/              OPC_EmitInteger, MVT::i32, 14, 
/* 91767*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91770*/              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] } (ARMvduplane:{ *:[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)
/* 91782*/            /*SwitchType*/ 22, MVT::v8i16,// ->91806
/* 91784*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 91786*/              OPC_EmitConvertToTarget, 2,
/* 91788*/              OPC_EmitInteger, MVT::i32, 14, 
/* 91791*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91794*/              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] } (ARMvduplane:{ *:[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)
/* 91806*/            0, // EndSwitchType
/* 91807*/          /*Scope*/ 61, /*->91869*/
/* 91808*/            OPC_CheckChild0Type, MVT::v2i32,
/* 91810*/            OPC_RecordChild1, // #2 = $lane
/* 91811*/            OPC_MoveChild1,
/* 91812*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91815*/            OPC_MoveParent,
/* 91816*/            OPC_MoveParent,
/* 91817*/            OPC_RecordChild1, // #3 = $Vn
/* 91818*/            OPC_MoveParent,
/* 91819*/            OPC_SwitchType /*2 cases */, 22, MVT::v2i32,// ->91844
/* 91822*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 91824*/              OPC_EmitConvertToTarget, 2,
/* 91826*/              OPC_EmitInteger, MVT::i32, 14, 
/* 91829*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91832*/              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] } (ARMvduplane:{ *:[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)
/* 91844*/            /*SwitchType*/ 22, MVT::v4i32,// ->91868
/* 91846*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 91848*/              OPC_EmitConvertToTarget, 2,
/* 91850*/              OPC_EmitInteger, MVT::i32, 14, 
/* 91853*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91856*/              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] } (ARMvduplane:{ *:[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)
/* 91868*/            0, // EndSwitchType
/* 91869*/          0, /*End of Scope*/
/* 91870*/        /*Scope*/ 110, /*->91981*/
/* 91871*/          OPC_RecordChild0, // #1 = $src2
/* 91872*/          OPC_MoveChild1,
/* 91873*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 91876*/          OPC_RecordChild0, // #2 = $src3
/* 91877*/          OPC_Scope, 50, /*->91929*/ // 2 children in Scope
/* 91879*/            OPC_CheckChild0Type, MVT::v8i16,
/* 91881*/            OPC_RecordChild1, // #3 = $lane
/* 91882*/            OPC_MoveChild1,
/* 91883*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91886*/            OPC_MoveParent,
/* 91887*/            OPC_MoveParent,
/* 91888*/            OPC_MoveParent,
/* 91889*/            OPC_CheckType, MVT::v8i16,
/* 91891*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 91893*/            OPC_EmitConvertToTarget, 3,
/* 91895*/            OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 91898*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i16, 2/*#Ops*/, 2, 5,  // Results = #6
/* 91906*/            OPC_EmitConvertToTarget, 3,
/* 91908*/            OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 91911*/            OPC_EmitInteger, MVT::i32, 14, 
/* 91914*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91917*/            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, (ARMvduplane:{ *:[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))
/* 91929*/          /*Scope*/ 50, /*->91980*/
/* 91930*/            OPC_CheckChild0Type, MVT::v4i32,
/* 91932*/            OPC_RecordChild1, // #3 = $lane
/* 91933*/            OPC_MoveChild1,
/* 91934*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91937*/            OPC_MoveParent,
/* 91938*/            OPC_MoveParent,
/* 91939*/            OPC_MoveParent,
/* 91940*/            OPC_CheckType, MVT::v4i32,
/* 91942*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 91944*/            OPC_EmitConvertToTarget, 3,
/* 91946*/            OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 91949*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i32, 2/*#Ops*/, 2, 5,  // Results = #6
/* 91957*/            OPC_EmitConvertToTarget, 3,
/* 91959*/            OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 91962*/            OPC_EmitInteger, MVT::i32, 14, 
/* 91965*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 91968*/            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, (ARMvduplane:{ *:[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))
/* 91980*/          0, /*End of Scope*/
/* 91981*/        /*Scope*/ 111, /*->92093*/
/* 91982*/          OPC_MoveChild0,
/* 91983*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 91986*/          OPC_RecordChild0, // #1 = $src3
/* 91987*/          OPC_Scope, 51, /*->92040*/ // 2 children in Scope
/* 91989*/            OPC_CheckChild0Type, MVT::v8i16,
/* 91991*/            OPC_RecordChild1, // #2 = $lane
/* 91992*/            OPC_MoveChild1,
/* 91993*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91996*/            OPC_MoveParent,
/* 91997*/            OPC_MoveParent,
/* 91998*/            OPC_RecordChild1, // #3 = $src2
/* 91999*/            OPC_MoveParent,
/* 92000*/            OPC_CheckType, MVT::v8i16,
/* 92002*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92004*/            OPC_EmitConvertToTarget, 2,
/* 92006*/            OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 92009*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i16, 2/*#Ops*/, 1, 5,  // Results = #6
/* 92017*/            OPC_EmitConvertToTarget, 2,
/* 92019*/            OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 92022*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92025*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92028*/            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] } (ARMvduplane:{ *:[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))
/* 92040*/          /*Scope*/ 51, /*->92092*/
/* 92041*/            OPC_CheckChild0Type, MVT::v4i32,
/* 92043*/            OPC_RecordChild1, // #2 = $lane
/* 92044*/            OPC_MoveChild1,
/* 92045*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 92048*/            OPC_MoveParent,
/* 92049*/            OPC_MoveParent,
/* 92050*/            OPC_RecordChild1, // #3 = $src2
/* 92051*/            OPC_MoveParent,
/* 92052*/            OPC_CheckType, MVT::v4i32,
/* 92054*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92056*/            OPC_EmitConvertToTarget, 2,
/* 92058*/            OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 92061*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 92069*/            OPC_EmitConvertToTarget, 2,
/* 92071*/            OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 92074*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92077*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92080*/            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] } (ARMvduplane:{ *:[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))
/* 92092*/          0, /*End of Scope*/
/* 92093*/        0, /*End of Scope*/
/* 92094*/      /*SwitchOpcode*/ 87, TARGET_VAL(ARMISD::VMULLs),// ->92184
/* 92097*/        OPC_RecordChild0, // #1 = $Vn
/* 92098*/        OPC_Scope, 41, /*->92141*/ // 2 children in Scope
/* 92100*/          OPC_CheckChild0Type, MVT::v4i16,
/* 92102*/          OPC_MoveChild1,
/* 92103*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 92106*/          OPC_RecordChild0, // #2 = $Vm
/* 92107*/          OPC_CheckChild0Type, MVT::v4i16,
/* 92109*/          OPC_RecordChild1, // #3 = $lane
/* 92110*/          OPC_MoveChild1,
/* 92111*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 92114*/          OPC_MoveParent,
/* 92115*/          OPC_MoveParent,
/* 92116*/          OPC_MoveParent,
/* 92117*/          OPC_CheckType, MVT::v4i32,
/* 92119*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92121*/          OPC_EmitConvertToTarget, 3,
/* 92123*/          OPC_EmitInteger, MVT::i32, 14, 
/* 92126*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92129*/          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, (ARMvduplane:{ *:[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)
/* 92141*/        /*Scope*/ 41, /*->92183*/
/* 92142*/          OPC_CheckChild0Type, MVT::v2i32,
/* 92144*/          OPC_MoveChild1,
/* 92145*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 92148*/          OPC_RecordChild0, // #2 = $Vm
/* 92149*/          OPC_CheckChild0Type, MVT::v2i32,
/* 92151*/          OPC_RecordChild1, // #3 = $lane
/* 92152*/          OPC_MoveChild1,
/* 92153*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 92156*/          OPC_MoveParent,
/* 92157*/          OPC_MoveParent,
/* 92158*/          OPC_MoveParent,
/* 92159*/          OPC_CheckType, MVT::v2i64,
/* 92161*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92163*/          OPC_EmitConvertToTarget, 3,
/* 92165*/          OPC_EmitInteger, MVT::i32, 14, 
/* 92168*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92171*/          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, (ARMvduplane:{ *:[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)
/* 92183*/        0, /*End of Scope*/
/* 92184*/      /*SwitchOpcode*/ 87, TARGET_VAL(ARMISD::VMULLu),// ->92274
/* 92187*/        OPC_RecordChild0, // #1 = $Vn
/* 92188*/        OPC_Scope, 41, /*->92231*/ // 2 children in Scope
/* 92190*/          OPC_CheckChild0Type, MVT::v4i16,
/* 92192*/          OPC_MoveChild1,
/* 92193*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 92196*/          OPC_RecordChild0, // #2 = $Vm
/* 92197*/          OPC_CheckChild0Type, MVT::v4i16,
/* 92199*/          OPC_RecordChild1, // #3 = $lane
/* 92200*/          OPC_MoveChild1,
/* 92201*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 92204*/          OPC_MoveParent,
/* 92205*/          OPC_MoveParent,
/* 92206*/          OPC_MoveParent,
/* 92207*/          OPC_CheckType, MVT::v4i32,
/* 92209*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92211*/          OPC_EmitConvertToTarget, 3,
/* 92213*/          OPC_EmitInteger, MVT::i32, 14, 
/* 92216*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92219*/          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, (ARMvduplane:{ *:[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)
/* 92231*/        /*Scope*/ 41, /*->92273*/
/* 92232*/          OPC_CheckChild0Type, MVT::v2i32,
/* 92234*/          OPC_MoveChild1,
/* 92235*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 92238*/          OPC_RecordChild0, // #2 = $Vm
/* 92239*/          OPC_CheckChild0Type, MVT::v2i32,
/* 92241*/          OPC_RecordChild1, // #3 = $lane
/* 92242*/          OPC_MoveChild1,
/* 92243*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 92246*/          OPC_MoveParent,
/* 92247*/          OPC_MoveParent,
/* 92248*/          OPC_MoveParent,
/* 92249*/          OPC_CheckType, MVT::v2i64,
/* 92251*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92253*/          OPC_EmitConvertToTarget, 3,
/* 92255*/          OPC_EmitInteger, MVT::i32, 14, 
/* 92258*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92261*/          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, (ARMvduplane:{ *:[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)
/* 92273*/        0, /*End of Scope*/
/* 92274*/      0, // EndSwitchOpcode
/* 92275*/    /*Scope*/ 23|128,2/*279*/, /*->92556*/
/* 92277*/      OPC_MoveChild0,
/* 92278*/      OPC_SwitchOpcode /*3 cases */, 77, TARGET_VAL(ARMISD::VMOVIMM),// ->92359
/* 92282*/        OPC_MoveChild0,
/* 92283*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 92286*/        OPC_MoveParent,
/* 92287*/        OPC_CheckPredicate, 87, // Predicate_NEONimmAllZerosV
/* 92289*/        OPC_MoveParent,
/* 92290*/        OPC_RecordChild1, // #0 = $Vm
/* 92291*/        OPC_SwitchType /*2 cases */, 17, MVT::v2i32,// ->92311
/* 92294*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92296*/          OPC_EmitInteger, MVT::i32, 14, 
/* 92299*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92302*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs32d), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (sub:{ *:[v2i32] } (ARMvmovImm:{ *:[v2i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>, DPR:{ *:[v2i32] }:$Vm) - Complexity = 10
                    // Dst: (VNEGs32d:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/* 92311*/        /*SwitchType*/ 45, MVT::v4i32,// ->92358
/* 92313*/          OPC_Scope, 17, /*->92332*/ // 2 children in Scope
/* 92315*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92317*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92320*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92323*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VNEGs32q), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (sub:{ *:[v4i32] } (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>, QPR:{ *:[v4i32] }:$Vm) - Complexity = 10
                      // Dst: (VNEGs32q:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/* 92332*/          /*Scope*/ 24, /*->92357*/
/* 92333*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 92335*/            OPC_EmitInteger, MVT::i32, 0, 
/* 92338*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92341*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 92347*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VNEGs32), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (sub:{ *:[v4i32] } (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>, MQPR:{ *:[v4i32] }:$v) - Complexity = 10
                      // Dst: (MVE_VNEGs32:{ *:[v4i32] } ?:{ *:[v4i32] }:$v)
/* 92357*/          0, /*End of Scope*/
/* 92358*/        0, // EndSwitchType
/* 92359*/      /*SwitchOpcode*/ 95, TARGET_VAL(ISD::SIGN_EXTEND),// ->92457
/* 92362*/        OPC_RecordChild0, // #0 = $Vn
/* 92363*/        OPC_Scope, 31, /*->92396*/ // 3 children in Scope
/* 92365*/          OPC_CheckChild0Type, MVT::v8i8,
/* 92367*/          OPC_MoveParent,
/* 92368*/          OPC_MoveChild1,
/* 92369*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 92372*/          OPC_RecordChild0, // #1 = $Vm
/* 92373*/          OPC_CheckChild0Type, MVT::v8i8,
/* 92375*/          OPC_MoveParent,
/* 92376*/          OPC_CheckType, MVT::v8i16,
/* 92378*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92380*/          OPC_EmitInteger, MVT::i32, 14, 
/* 92383*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92386*/          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)
/* 92396*/        /*Scope*/ 31, /*->92428*/
/* 92397*/          OPC_CheckChild0Type, MVT::v4i16,
/* 92399*/          OPC_MoveParent,
/* 92400*/          OPC_MoveChild1,
/* 92401*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 92404*/          OPC_RecordChild0, // #1 = $Vm
/* 92405*/          OPC_CheckChild0Type, MVT::v4i16,
/* 92407*/          OPC_MoveParent,
/* 92408*/          OPC_CheckType, MVT::v4i32,
/* 92410*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92412*/          OPC_EmitInteger, MVT::i32, 14, 
/* 92415*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92418*/          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)
/* 92428*/        /*Scope*/ 27, /*->92456*/
/* 92429*/          OPC_MoveParent,
/* 92430*/          OPC_MoveChild1,
/* 92431*/          OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/* 92434*/          OPC_RecordChild0, // #1 = $Vm
/* 92435*/          OPC_MoveParent,
/* 92436*/          OPC_CheckType, MVT::v2i64,
/* 92438*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92440*/          OPC_EmitInteger, MVT::i32, 14, 
/* 92443*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92446*/          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)
/* 92456*/        0, /*End of Scope*/
/* 92457*/      /*SwitchOpcode*/ 95, TARGET_VAL(ISD::ZERO_EXTEND),// ->92555
/* 92460*/        OPC_RecordChild0, // #0 = $Vn
/* 92461*/        OPC_Scope, 31, /*->92494*/ // 3 children in Scope
/* 92463*/          OPC_CheckChild0Type, MVT::v8i8,
/* 92465*/          OPC_MoveParent,
/* 92466*/          OPC_MoveChild1,
/* 92467*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 92470*/          OPC_RecordChild0, // #1 = $Vm
/* 92471*/          OPC_CheckChild0Type, MVT::v8i8,
/* 92473*/          OPC_MoveParent,
/* 92474*/          OPC_CheckType, MVT::v8i16,
/* 92476*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92478*/          OPC_EmitInteger, MVT::i32, 14, 
/* 92481*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92484*/          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)
/* 92494*/        /*Scope*/ 31, /*->92526*/
/* 92495*/          OPC_CheckChild0Type, MVT::v4i16,
/* 92497*/          OPC_MoveParent,
/* 92498*/          OPC_MoveChild1,
/* 92499*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 92502*/          OPC_RecordChild0, // #1 = $Vm
/* 92503*/          OPC_CheckChild0Type, MVT::v4i16,
/* 92505*/          OPC_MoveParent,
/* 92506*/          OPC_CheckType, MVT::v4i32,
/* 92508*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92510*/          OPC_EmitInteger, MVT::i32, 14, 
/* 92513*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92516*/          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)
/* 92526*/        /*Scope*/ 27, /*->92554*/
/* 92527*/          OPC_MoveParent,
/* 92528*/          OPC_MoveChild1,
/* 92529*/          OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/* 92532*/          OPC_RecordChild0, // #1 = $Vm
/* 92533*/          OPC_MoveParent,
/* 92534*/          OPC_CheckType, MVT::v2i64,
/* 92536*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92538*/          OPC_EmitInteger, MVT::i32, 14, 
/* 92541*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92544*/          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)
/* 92554*/        0, /*End of Scope*/
/* 92555*/      0, // EndSwitchOpcode
/* 92556*/    /*Scope*/ 37|128,6/*805*/, /*->93363*/
/* 92558*/      OPC_RecordChild0, // #0 = $src1
/* 92559*/      OPC_Scope, 36|128,4/*548*/, /*->93110*/ // 2 children in Scope
/* 92562*/        OPC_MoveChild1,
/* 92563*/        OPC_SwitchOpcode /*6 cases */, 3|128,1/*131*/, TARGET_VAL(ISD::MUL),// ->92699
/* 92568*/          OPC_RecordChild0, // #1 = $Vn
/* 92569*/          OPC_RecordChild1, // #2 = $Vm
/* 92570*/          OPC_MoveParent,
/* 92571*/          OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->92593
/* 92574*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92576*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92579*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92582*/            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)
/* 92593*/          /*SwitchType*/ 19, MVT::v4i16,// ->92614
/* 92595*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92597*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92600*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92603*/            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)
/* 92614*/          /*SwitchType*/ 19, MVT::v2i32,// ->92635
/* 92616*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92618*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92621*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92624*/            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)
/* 92635*/          /*SwitchType*/ 19, MVT::v16i8,// ->92656
/* 92637*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92639*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92642*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92645*/            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)
/* 92656*/          /*SwitchType*/ 19, MVT::v8i16,// ->92677
/* 92658*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92660*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92663*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92666*/            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)
/* 92677*/          /*SwitchType*/ 19, MVT::v4i32,// ->92698
/* 92679*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92681*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92684*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92687*/            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)
/* 92698*/          0, // EndSwitchType
/* 92699*/        /*SwitchOpcode*/ 81, TARGET_VAL(ARMISD::VMULLs),// ->92783
/* 92702*/          OPC_RecordChild0, // #1 = $Vn
/* 92703*/          OPC_Scope, 25, /*->92730*/ // 3 children in Scope
/* 92705*/            OPC_CheckChild0Type, MVT::v8i8,
/* 92707*/            OPC_RecordChild1, // #2 = $Vm
/* 92708*/            OPC_MoveParent,
/* 92709*/            OPC_CheckType, MVT::v8i16,
/* 92711*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92713*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92716*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92719*/            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)
/* 92730*/          /*Scope*/ 25, /*->92756*/
/* 92731*/            OPC_CheckChild0Type, MVT::v4i16,
/* 92733*/            OPC_RecordChild1, // #2 = $Vm
/* 92734*/            OPC_MoveParent,
/* 92735*/            OPC_CheckType, MVT::v4i32,
/* 92737*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92739*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92742*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92745*/            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)
/* 92756*/          /*Scope*/ 25, /*->92782*/
/* 92757*/            OPC_CheckChild0Type, MVT::v2i32,
/* 92759*/            OPC_RecordChild1, // #2 = $Vm
/* 92760*/            OPC_MoveParent,
/* 92761*/            OPC_CheckType, MVT::v2i64,
/* 92763*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92765*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92768*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92771*/            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)
/* 92782*/          0, /*End of Scope*/
/* 92783*/        /*SwitchOpcode*/ 81, TARGET_VAL(ARMISD::VMULLu),// ->92867
/* 92786*/          OPC_RecordChild0, // #1 = $Vn
/* 92787*/          OPC_Scope, 25, /*->92814*/ // 3 children in Scope
/* 92789*/            OPC_CheckChild0Type, MVT::v8i8,
/* 92791*/            OPC_RecordChild1, // #2 = $Vm
/* 92792*/            OPC_MoveParent,
/* 92793*/            OPC_CheckType, MVT::v8i16,
/* 92795*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92797*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92800*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92803*/            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)
/* 92814*/          /*Scope*/ 25, /*->92840*/
/* 92815*/            OPC_CheckChild0Type, MVT::v4i16,
/* 92817*/            OPC_RecordChild1, // #2 = $Vm
/* 92818*/            OPC_MoveParent,
/* 92819*/            OPC_CheckType, MVT::v4i32,
/* 92821*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92823*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92826*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92829*/            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)
/* 92840*/          /*Scope*/ 25, /*->92866*/
/* 92841*/            OPC_CheckChild0Type, MVT::v2i32,
/* 92843*/            OPC_RecordChild1, // #2 = $Vm
/* 92844*/            OPC_MoveParent,
/* 92845*/            OPC_CheckType, MVT::v2i64,
/* 92847*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92849*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92852*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92855*/            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)
/* 92866*/          0, /*End of Scope*/
/* 92867*/        /*SwitchOpcode*/ 73, TARGET_VAL(ISD::SIGN_EXTEND),// ->92943
/* 92870*/          OPC_RecordChild0, // #1 = $Vm
/* 92871*/          OPC_Scope, 23, /*->92896*/ // 3 children in Scope
/* 92873*/            OPC_CheckChild0Type, MVT::v8i8,
/* 92875*/            OPC_MoveParent,
/* 92876*/            OPC_CheckType, MVT::v8i16,
/* 92878*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92880*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92883*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92886*/            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)
/* 92896*/          /*Scope*/ 23, /*->92920*/
/* 92897*/            OPC_CheckChild0Type, MVT::v4i16,
/* 92899*/            OPC_MoveParent,
/* 92900*/            OPC_CheckType, MVT::v4i32,
/* 92902*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92904*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92907*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92910*/            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)
/* 92920*/          /*Scope*/ 21, /*->92942*/
/* 92921*/            OPC_MoveParent,
/* 92922*/            OPC_CheckType, MVT::v2i64,
/* 92924*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92926*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92929*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92932*/            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)
/* 92942*/          0, /*End of Scope*/
/* 92943*/        /*SwitchOpcode*/ 73, TARGET_VAL(ISD::ZERO_EXTEND),// ->93019
/* 92946*/          OPC_RecordChild0, // #1 = $Vm
/* 92947*/          OPC_Scope, 23, /*->92972*/ // 3 children in Scope
/* 92949*/            OPC_CheckChild0Type, MVT::v8i8,
/* 92951*/            OPC_MoveParent,
/* 92952*/            OPC_CheckType, MVT::v8i16,
/* 92954*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92956*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92959*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92962*/            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)
/* 92972*/          /*Scope*/ 23, /*->92996*/
/* 92973*/            OPC_CheckChild0Type, MVT::v4i16,
/* 92975*/            OPC_MoveParent,
/* 92976*/            OPC_CheckType, MVT::v4i32,
/* 92978*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 92980*/            OPC_EmitInteger, MVT::i32, 14, 
/* 92983*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 92986*/            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)
/* 92996*/          /*Scope*/ 21, /*->93018*/
/* 92997*/            OPC_MoveParent,
/* 92998*/            OPC_CheckType, MVT::v2i64,
/* 93000*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 93002*/            OPC_EmitInteger, MVT::i32, 14, 
/* 93005*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93008*/            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)
/* 93018*/          0, /*End of Scope*/
/* 93019*/        /*SwitchOpcode*/ 87, TARGET_VAL(ARMISD::VDUP),// ->93109
/* 93022*/          OPC_RecordChild0, // #1 = $val2
/* 93023*/          OPC_CheckChild0Type, MVT::i32,
/* 93025*/          OPC_MoveParent,
/* 93026*/          OPC_SwitchType /*3 cases */, 25, MVT::v16i8,// ->93054
/* 93029*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 93031*/            OPC_EmitInteger, MVT::i32, 0, 
/* 93034*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93037*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 93043*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSUB_qr_i8), 0,
                          MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$val2)) - Complexity = 6
                      // Dst: (MVE_VSUB_qr_i8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1, GPR:{ *:[i32] }:$val2)
/* 93054*/          /*SwitchType*/ 25, MVT::v8i16,// ->93081
/* 93056*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 93058*/            OPC_EmitInteger, MVT::i32, 0, 
/* 93061*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93064*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 93070*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSUB_qr_i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$val2)) - Complexity = 6
                      // Dst: (MVE_VSUB_qr_i16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1, GPR:{ *:[i32] }:$val2)
/* 93081*/          /*SwitchType*/ 25, MVT::v4i32,// ->93108
/* 93083*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 93085*/            OPC_EmitInteger, MVT::i32, 0, 
/* 93088*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93091*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 93097*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSUB_qr_i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$val2)) - Complexity = 6
                      // Dst: (MVE_VSUB_qr_i32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1, GPR:{ *:[i32] }:$val2)
/* 93108*/          0, // EndSwitchType
/* 93109*/        0, // EndSwitchOpcode
/* 93110*/      /*Scope*/ 122|128,1/*250*/, /*->93362*/
/* 93112*/        OPC_RecordChild1, // #1 = $Vm
/* 93113*/        OPC_SwitchType /*8 cases */, 18, MVT::v8i8,// ->93134
/* 93116*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 93118*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93121*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93124*/          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)
/* 93134*/        /*SwitchType*/ 18, MVT::v4i16,// ->93154
/* 93136*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 93138*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93141*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93144*/          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)
/* 93154*/        /*SwitchType*/ 18, MVT::v2i32,// ->93174
/* 93156*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 93158*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93161*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93164*/          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)
/* 93174*/        /*SwitchType*/ 47, MVT::v16i8,// ->93223
/* 93176*/          OPC_Scope, 18, /*->93196*/ // 2 children in Scope
/* 93178*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 93180*/            OPC_EmitInteger, MVT::i32, 14, 
/* 93183*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93186*/            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)
/* 93196*/          /*Scope*/ 25, /*->93222*/
/* 93197*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 93199*/            OPC_EmitInteger, MVT::i32, 0, 
/* 93202*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93205*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 93211*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSUBi8), 0,
                          MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                      // Dst: (MVE_VSUBi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 93222*/          0, /*End of Scope*/
/* 93223*/        /*SwitchType*/ 47, MVT::v8i16,// ->93272
/* 93225*/          OPC_Scope, 18, /*->93245*/ // 2 children in Scope
/* 93227*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 93229*/            OPC_EmitInteger, MVT::i32, 14, 
/* 93232*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93235*/            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)
/* 93245*/          /*Scope*/ 25, /*->93271*/
/* 93246*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 93248*/            OPC_EmitInteger, MVT::i32, 0, 
/* 93251*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93254*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 93260*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSUBi16), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                      // Dst: (MVE_VSUBi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 93271*/          0, /*End of Scope*/
/* 93272*/        /*SwitchType*/ 47, MVT::v4i32,// ->93321
/* 93274*/          OPC_Scope, 18, /*->93294*/ // 2 children in Scope
/* 93276*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 93278*/            OPC_EmitInteger, MVT::i32, 14, 
/* 93281*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93284*/            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)
/* 93294*/          /*Scope*/ 25, /*->93320*/
/* 93295*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 93297*/            OPC_EmitInteger, MVT::i32, 0, 
/* 93300*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93303*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 93309*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSUBi32), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (sub:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                      // Dst: (MVE_VSUBi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 93320*/          0, /*End of Scope*/
/* 93321*/        /*SwitchType*/ 18, MVT::v1i64,// ->93341
/* 93323*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 93325*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93328*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93331*/          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)
/* 93341*/        /*SwitchType*/ 18, MVT::v2i64,// ->93361
/* 93343*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 93345*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93348*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93351*/          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)
/* 93361*/        0, // EndSwitchType
/* 93362*/      0, /*End of Scope*/
/* 93363*/    0, /*End of Scope*/
/* 93364*/  /*SwitchOpcode*/ 121|128,3/*505*/, TARGET_VAL(ARMISD::ADDC),// ->93873
/* 93368*/    OPC_RecordChild0, // #0 = $Rn
/* 93369*/    OPC_RecordChild1, // #1 = $shift
/* 93370*/    OPC_Scope, 21|128,1/*149*/, /*->93522*/ // 3 children in Scope
/* 93373*/      OPC_CheckType, MVT::i32,
/* 93375*/      OPC_Scope, 72, /*->93449*/ // 4 children in Scope
/* 93377*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 93379*/        OPC_Scope, 22, /*->93403*/ // 3 children in Scope
/* 93381*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 93384*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93387*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93390*/          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)
/* 93403*/        /*Scope*/ 22, /*->93426*/
/* 93404*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 93407*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93410*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93413*/          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)
/* 93426*/        /*Scope*/ 21, /*->93448*/
/* 93427*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 93430*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93433*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93436*/          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)
/* 93448*/        0, /*End of Scope*/
/* 93449*/      /*Scope*/ 23, /*->93473*/
/* 93450*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 93452*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 93455*/        OPC_EmitInteger, MVT::i32, 14, 
/* 93458*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93461*/        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)
/* 93473*/      /*Scope*/ 23, /*->93497*/
/* 93474*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 93476*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 93479*/        OPC_EmitInteger, MVT::i32, 14, 
/* 93482*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93485*/        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)
/* 93497*/      /*Scope*/ 23, /*->93521*/
/* 93498*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 93500*/        OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 93503*/        OPC_EmitInteger, MVT::i32, 14, 
/* 93506*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93509*/        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)
/* 93521*/      0, /*End of Scope*/
/* 93522*/    /*Scope*/ 20|128,2/*276*/, /*->93800*/
/* 93524*/      OPC_MoveChild1,
/* 93525*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 93528*/      OPC_Scope, 29, /*->93559*/ // 8 children in Scope
/* 93530*/        OPC_CheckPredicate, 17, // Predicate_imm1_255_neg
/* 93532*/        OPC_MoveParent,
/* 93533*/        OPC_CheckType, MVT::i32,
/* 93535*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 93537*/        OPC_EmitConvertToTarget, 1,
/* 93539*/        OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 93542*/        OPC_EmitInteger, MVT::i32, 14, 
/* 93545*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93548*/        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))
/* 93559*/      /*Scope*/ 26, /*->93586*/
/* 93560*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 93562*/        OPC_MoveParent,
/* 93563*/        OPC_CheckType, MVT::i32,
/* 93565*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 93567*/        OPC_EmitConvertToTarget, 1,
/* 93569*/        OPC_EmitInteger, MVT::i32, 14, 
/* 93572*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93575*/        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)
/* 93586*/      /*Scope*/ 29, /*->93616*/
/* 93587*/        OPC_CheckPredicate, 18, // Predicate_mod_imm_neg
/* 93589*/        OPC_MoveParent,
/* 93590*/        OPC_CheckType, MVT::i32,
/* 93592*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 93594*/        OPC_EmitConvertToTarget, 1,
/* 93596*/        OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 93599*/        OPC_EmitInteger, MVT::i32, 14, 
/* 93602*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93605*/        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))
/* 93616*/      /*Scope*/ 18, /*->93635*/
/* 93617*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/* 93619*/        OPC_MoveParent,
/* 93620*/        OPC_CheckType, MVT::i32,
/* 93622*/        OPC_CheckPatternPredicate, 66, // (Subtarget->isThumb1Only())
/* 93624*/        OPC_EmitConvertToTarget, 1,
/* 93626*/        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)
/* 93635*/      /*Scope*/ 18, /*->93654*/
/* 93636*/        OPC_CheckPredicate, 8, // Predicate_imm8_255
/* 93638*/        OPC_MoveParent,
/* 93639*/        OPC_CheckType, MVT::i32,
/* 93641*/        OPC_CheckPatternPredicate, 66, // (Subtarget->isThumb1Only())
/* 93643*/        OPC_EmitConvertToTarget, 1,
/* 93645*/        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)
/* 93654*/      /*Scope*/ 26, /*->93681*/
/* 93655*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 93657*/        OPC_MoveParent,
/* 93658*/        OPC_CheckType, MVT::i32,
/* 93660*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 93662*/        OPC_EmitConvertToTarget, 1,
/* 93664*/        OPC_EmitInteger, MVT::i32, 14, 
/* 93667*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93670*/        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)
/* 93681*/      /*Scope*/ 29, /*->93711*/
/* 93682*/        OPC_CheckPredicate, 21, // Predicate_t2_so_imm_neg
/* 93684*/        OPC_MoveParent,
/* 93685*/        OPC_CheckType, MVT::i32,
/* 93687*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 93689*/        OPC_EmitConvertToTarget, 1,
/* 93691*/        OPC_EmitNodeXForm, 4, 2, // t2_so_imm_neg_XFORM
/* 93694*/        OPC_EmitInteger, MVT::i32, 14, 
/* 93697*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93700*/        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))
/* 93711*/      /*Scope*/ 87, /*->93799*/
/* 93712*/        OPC_CheckPredicate, 23, // Predicate_imm0_65535_neg
/* 93714*/        OPC_MoveParent,
/* 93715*/        OPC_CheckType, MVT::i32,
/* 93717*/        OPC_Scope, 39, /*->93758*/ // 2 children in Scope
/* 93719*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 93721*/          OPC_EmitConvertToTarget, 1,
/* 93723*/          OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 93726*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93729*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93732*/          OPC_EmitNode1, TARGET_VAL(ARM::MOVi16), 0,
                        MVT::i32, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 93741*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93744*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93747*/          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)))
/* 93758*/        /*Scope*/ 39, /*->93798*/
/* 93759*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 93761*/          OPC_EmitConvertToTarget, 1,
/* 93763*/          OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 93766*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93769*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93772*/          OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi16), 0,
                        MVT::i32, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/* 93781*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93784*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93787*/          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)))
/* 93798*/        0, /*End of Scope*/
/* 93799*/      0, /*End of Scope*/
/* 93800*/    /*Scope*/ 71, /*->93872*/
/* 93801*/      OPC_CheckType, MVT::i32,
/* 93803*/      OPC_Scope, 19, /*->93824*/ // 3 children in Scope
/* 93805*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 93807*/        OPC_EmitInteger, MVT::i32, 14, 
/* 93810*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93813*/        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)
/* 93824*/      /*Scope*/ 11, /*->93836*/
/* 93825*/        OPC_CheckPatternPredicate, 66, // (Subtarget->isThumb1Only())
/* 93827*/        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)
/* 93836*/      /*Scope*/ 34, /*->93871*/
/* 93837*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 93839*/        OPC_EmitInteger, MVT::i32, 14, 
/* 93842*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93845*/        OPC_Scope, 11, /*->93858*/ // 2 children in Scope
/* 93847*/          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)
/* 93858*/        /*Scope*/ 11, /*->93870*/
/* 93859*/          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)
/* 93870*/        0, /*End of Scope*/
/* 93871*/      0, /*End of Scope*/
/* 93872*/    0, /*End of Scope*/
/* 93873*/  /*SwitchOpcode*/ 18|128,3/*402*/, TARGET_VAL(ARMISD::SUBC),// ->94279
/* 93877*/    OPC_Scope, 22|128,1/*150*/, /*->94030*/ // 3 children in Scope
/* 93880*/      OPC_RecordChild0, // #0 = $Rn
/* 93881*/      OPC_RecordChild1, // #1 = $shift
/* 93882*/      OPC_CheckType, MVT::i32,
/* 93884*/      OPC_Scope, 94, /*->93980*/ // 2 children in Scope
/* 93886*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 93888*/        OPC_Scope, 22, /*->93912*/ // 4 children in Scope
/* 93890*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 93893*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93896*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93899*/          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)
/* 93912*/        /*Scope*/ 22, /*->93935*/
/* 93913*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #2 #3 #4
/* 93916*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93919*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93922*/          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)
/* 93935*/        /*Scope*/ 21, /*->93957*/
/* 93936*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 93939*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93942*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93945*/          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)
/* 93957*/        /*Scope*/ 21, /*->93979*/
/* 93958*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #2 #3
/* 93961*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93964*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93967*/          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)
/* 93979*/        0, /*End of Scope*/
/* 93980*/      /*Scope*/ 48, /*->94029*/
/* 93981*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 93983*/        OPC_Scope, 21, /*->94006*/ // 2 children in Scope
/* 93985*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 93988*/          OPC_EmitInteger, MVT::i32, 14, 
/* 93991*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 93994*/          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)
/* 94006*/        /*Scope*/ 21, /*->94028*/
/* 94007*/          OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 94010*/          OPC_EmitInteger, MVT::i32, 14, 
/* 94013*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94016*/          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)
/* 94028*/        0, /*End of Scope*/
/* 94029*/      0, /*End of Scope*/
/* 94030*/    /*Scope*/ 15, /*->94046*/
/* 94031*/      OPC_CheckChild0Integer, 0, 
/* 94033*/      OPC_RecordChild1, // #0 = $Rn
/* 94034*/      OPC_CheckType, MVT::i32,
/* 94036*/      OPC_CheckPatternPredicate, 66, // (Subtarget->isThumb1Only())
/* 94038*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::tRSBS), 0,
                    MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                // Src: (ARMsubc:{ *:[i32] }:{ *:[i32] } 0:{ *:[i32] }, tGPR:{ *:[i32] }:$Rn) - Complexity = 8
                // Dst: (tRSBS:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn)
/* 94046*/    /*Scope*/ 102|128,1/*230*/, /*->94278*/
/* 94048*/      OPC_RecordChild0, // #0 = $Rn
/* 94049*/      OPC_Scope, 31, /*->94082*/ // 5 children in Scope
/* 94051*/        OPC_RecordChild1, // #1 = $imm
/* 94052*/        OPC_MoveChild1,
/* 94053*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 94056*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 94058*/        OPC_MoveParent,
/* 94059*/        OPC_CheckType, MVT::i32,
/* 94061*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 94063*/        OPC_EmitConvertToTarget, 1,
/* 94065*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94068*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94071*/        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)
/* 94082*/      /*Scope*/ 31, /*->94114*/
/* 94083*/        OPC_MoveChild0,
/* 94084*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 94087*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 94089*/        OPC_MoveParent,
/* 94090*/        OPC_RecordChild1, // #1 = $Rn
/* 94091*/        OPC_CheckType, MVT::i32,
/* 94093*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 94095*/        OPC_EmitConvertToTarget, 0,
/* 94097*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94100*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94103*/        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)
/* 94114*/      /*Scope*/ 72, /*->94187*/
/* 94115*/        OPC_RecordChild1, // #1 = $imm3
/* 94116*/        OPC_MoveChild1,
/* 94117*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 94120*/        OPC_Scope, 18, /*->94140*/ // 3 children in Scope
/* 94122*/          OPC_CheckPredicate, 7, // Predicate_imm0_7
/* 94124*/          OPC_MoveParent,
/* 94125*/          OPC_CheckType, MVT::i32,
/* 94127*/          OPC_CheckPatternPredicate, 66, // (Subtarget->isThumb1Only())
/* 94129*/          OPC_EmitConvertToTarget, 1,
/* 94131*/          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)
/* 94140*/        /*Scope*/ 18, /*->94159*/
/* 94141*/          OPC_CheckPredicate, 8, // Predicate_imm8_255
/* 94143*/          OPC_MoveParent,
/* 94144*/          OPC_CheckType, MVT::i32,
/* 94146*/          OPC_CheckPatternPredicate, 66, // (Subtarget->isThumb1Only())
/* 94148*/          OPC_EmitConvertToTarget, 1,
/* 94150*/          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)
/* 94159*/        /*Scope*/ 26, /*->94186*/
/* 94160*/          OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 94162*/          OPC_MoveParent,
/* 94163*/          OPC_CheckType, MVT::i32,
/* 94165*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 94167*/          OPC_EmitConvertToTarget, 1,
/* 94169*/          OPC_EmitInteger, MVT::i32, 14, 
/* 94172*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94175*/          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)
/* 94186*/        0, /*End of Scope*/
/* 94187*/      /*Scope*/ 31, /*->94219*/
/* 94188*/        OPC_MoveChild0,
/* 94189*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 94192*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 94194*/        OPC_MoveParent,
/* 94195*/        OPC_RecordChild1, // #1 = $Rn
/* 94196*/        OPC_CheckType, MVT::i32,
/* 94198*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 94200*/        OPC_EmitConvertToTarget, 0,
/* 94202*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94205*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94208*/        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)
/* 94219*/      /*Scope*/ 57, /*->94277*/
/* 94220*/        OPC_RecordChild1, // #1 = $Rm
/* 94221*/        OPC_CheckType, MVT::i32,
/* 94223*/        OPC_Scope, 19, /*->94244*/ // 3 children in Scope
/* 94225*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 94227*/          OPC_EmitInteger, MVT::i32, 14, 
/* 94230*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94233*/          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)
/* 94244*/        /*Scope*/ 11, /*->94256*/
/* 94245*/          OPC_CheckPatternPredicate, 66, // (Subtarget->isThumb1Only())
/* 94247*/          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)
/* 94256*/        /*Scope*/ 19, /*->94276*/
/* 94257*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 94259*/          OPC_EmitInteger, MVT::i32, 14, 
/* 94262*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94265*/          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)
/* 94276*/        0, /*End of Scope*/
/* 94277*/      0, /*End of Scope*/
/* 94278*/    0, /*End of Scope*/
/* 94279*/  /*SwitchOpcode*/ 111|128,1/*239*/, TARGET_VAL(ARMISD::SUBS),// ->94522
/* 94283*/    OPC_RecordChild0, // #0 = $Rn
/* 94284*/    OPC_RecordChild1, // #1 = $shift
/* 94285*/    OPC_Scope, 78, /*->94365*/ // 3 children in Scope
/* 94287*/      OPC_CheckType, MVT::i32,
/* 94289*/      OPC_Scope, 49, /*->94340*/ // 2 children in Scope
/* 94291*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 94293*/        OPC_Scope, 22, /*->94317*/ // 2 children in Scope
/* 94295*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 94298*/          OPC_EmitInteger, MVT::i32, 14, 
/* 94301*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94304*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::SUBSrsr), 0|OPFL_GlueOutput,
                        MVT::i32, MVT::i32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                    // Src: (ARMsubs:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift) - Complexity = 15
                    // Dst: (SUBSrsr:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, so_reg_reg:{ *:[i32] }:$shift)
/* 94317*/        /*Scope*/ 21, /*->94339*/
/* 94318*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 94321*/          OPC_EmitInteger, MVT::i32, 14, 
/* 94324*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94327*/          OPC_MorphNodeTo2, TARGET_VAL(ARM::SUBSrsi), 0|OPFL_GlueOutput,
                        MVT::i32, MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                    // Src: (ARMsubs:{ *:[i32] } GPR:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift) - Complexity = 12
                    // Dst: (SUBSrsi:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, so_reg_imm:{ *:[i32] }:$shift)
/* 94339*/        0, /*End of Scope*/
/* 94340*/      /*Scope*/ 23, /*->94364*/
/* 94341*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 94343*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 94346*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94349*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94352*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SUBSrs), 0|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (ARMsubs:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm) - Complexity = 12
                  // Dst: (t2SUBSrs:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, t2_so_reg:{ *:[i32] }:$ShiftedRm)
/* 94364*/      0, /*End of Scope*/
/* 94365*/    /*Scope*/ 98, /*->94464*/
/* 94366*/      OPC_MoveChild1,
/* 94367*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 94370*/      OPC_Scope, 26, /*->94398*/ // 4 children in Scope
/* 94372*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 94374*/        OPC_MoveParent,
/* 94375*/        OPC_CheckType, MVT::i32,
/* 94377*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 94379*/        OPC_EmitConvertToTarget, 1,
/* 94381*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94384*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94387*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::SUBSri), 0|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMsubs:{ *:[i32] } GPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm) - Complexity = 7
                  // Dst: (SUBSri:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_mod_imm>>:$imm)
/* 94398*/      /*Scope*/ 18, /*->94417*/
/* 94399*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/* 94401*/        OPC_MoveParent,
/* 94402*/        OPC_CheckType, MVT::i32,
/* 94404*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 94406*/        OPC_EmitConvertToTarget, 1,
/* 94408*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::tSUBSi3), 0|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (ARMsubs:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm3) - Complexity = 7
                  // Dst: (tSUBSi3:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm3)
/* 94417*/      /*Scope*/ 18, /*->94436*/
/* 94418*/        OPC_CheckPredicate, 57, // Predicate_imm0_255
/* 94420*/        OPC_MoveParent,
/* 94421*/        OPC_CheckType, MVT::i32,
/* 94423*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 94425*/        OPC_EmitConvertToTarget, 1,
/* 94427*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::tSUBSi8), 0|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                  // Src: (ARMsubs:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8) - Complexity = 7
                  // Dst: (tSUBSi8:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_255>>:$imm8)
/* 94436*/      /*Scope*/ 26, /*->94463*/
/* 94437*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 94439*/        OPC_MoveParent,
/* 94440*/        OPC_CheckType, MVT::i32,
/* 94442*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 94444*/        OPC_EmitConvertToTarget, 1,
/* 94446*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94449*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94452*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SUBSri), 0|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMsubs:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm) - Complexity = 7
                  // Dst: (t2SUBSri:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_t2_so_imm>>:$imm)
/* 94463*/      0, /*End of Scope*/
/* 94464*/    /*Scope*/ 56, /*->94521*/
/* 94465*/      OPC_CheckType, MVT::i32,
/* 94467*/      OPC_Scope, 19, /*->94488*/ // 3 children in Scope
/* 94469*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 94471*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94474*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94477*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::SUBSrr), 0|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMsubs:{ *:[i32] } GPR:{ *:[i32] }:$Rn, GPR:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (SUBSrr:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm)
/* 94488*/      /*Scope*/ 11, /*->94500*/
/* 94489*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 94491*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::tSUBSrr), 0|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (ARMsubs:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, tGPR:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (tSUBSrr:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm)
/* 94500*/      /*Scope*/ 19, /*->94520*/
/* 94501*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 94503*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94506*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94509*/        OPC_MorphNodeTo2, TARGET_VAL(ARM::t2SUBSrr), 0|OPFL_GlueOutput,
                      MVT::i32, MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMsubs:{ *:[i32] } GPRnopc:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                  // Dst: (t2SUBSrr:{ *:[i32] }:{ *:[i32] } ?:{ *:[i32] }:$Rn, ?:{ *:[i32] }:$Rm)
/* 94520*/      0, /*End of Scope*/
/* 94521*/    0, /*End of Scope*/
/* 94522*/  /*SwitchOpcode*/ 91|128,3/*475*/, TARGET_VAL(ARMISD::ADDE),// ->95001
/* 94526*/    OPC_RecordChild0, // #0 = $Rn
/* 94527*/    OPC_RecordChild1, // #1 = $shift
/* 94528*/    OPC_Scope, 100, /*->94630*/ // 3 children in Scope
/* 94530*/      OPC_RecordChild2, // #2 = physreg input CPSR
/* 94531*/      OPC_CheckType, MVT::i32,
/* 94533*/      OPC_Scope, 63, /*->94598*/ // 2 children in Scope
/* 94535*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 94537*/        OPC_Scope, 29, /*->94568*/ // 2 children in Scope
/* 94539*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #3 #4 #5
/* 94542*/          OPC_EmitInteger, MVT::i32, 14, 
/* 94545*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94548*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94551*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 94554*/          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)
/* 94568*/        /*Scope*/ 28, /*->94597*/
/* 94569*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #3 #4
/* 94572*/          OPC_EmitInteger, MVT::i32, 14, 
/* 94575*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94578*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94581*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 94584*/          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)
/* 94597*/        0, /*End of Scope*/
/* 94598*/      /*Scope*/ 30, /*->94629*/
/* 94599*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 94601*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #3 #4
/* 94604*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94607*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94610*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94613*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 94616*/        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)
/* 94629*/      0, /*End of Scope*/
/* 94630*/    /*Scope*/ 37|128,2/*293*/, /*->94925*/
/* 94632*/      OPC_MoveChild1,
/* 94633*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 94636*/      OPC_Scope, 37, /*->94675*/ // 6 children in Scope
/* 94638*/        OPC_CheckPredicate, 88, // Predicate_imm0_255_not
/* 94640*/        OPC_MoveParent,
/* 94641*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 94642*/        OPC_CheckType, MVT::i32,
/* 94644*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 94646*/        OPC_EmitConvertToTarget, 1,
/* 94648*/        OPC_EmitNodeXForm, 9, 3, // imm_not_XFORM
/* 94651*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94654*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94657*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94660*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 94663*/        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))
/* 94675*/      /*Scope*/ 34, /*->94710*/
/* 94676*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 94678*/        OPC_MoveParent,
/* 94679*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 94680*/        OPC_CheckType, MVT::i32,
/* 94682*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 94684*/        OPC_EmitConvertToTarget, 1,
/* 94686*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94689*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94692*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94695*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 94698*/        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)
/* 94710*/      /*Scope*/ 37, /*->94748*/
/* 94711*/        OPC_CheckPredicate, 26, // Predicate_mod_imm_not
/* 94713*/        OPC_MoveParent,
/* 94714*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 94715*/        OPC_CheckType, MVT::i32,
/* 94717*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 94719*/        OPC_EmitConvertToTarget, 1,
/* 94721*/        OPC_EmitNodeXForm, 9, 3, // imm_not_XFORM
/* 94724*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94727*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94730*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94733*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 94736*/        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))
/* 94748*/      /*Scope*/ 34, /*->94783*/
/* 94749*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 94751*/        OPC_MoveParent,
/* 94752*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 94753*/        OPC_CheckType, MVT::i32,
/* 94755*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 94757*/        OPC_EmitConvertToTarget, 1,
/* 94759*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94762*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94765*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94768*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 94771*/        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)
/* 94783*/      /*Scope*/ 37, /*->94821*/
/* 94784*/        OPC_CheckPredicate, 12, // Predicate_t2_so_imm_not
/* 94786*/        OPC_MoveParent,
/* 94787*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 94788*/        OPC_CheckType, MVT::i32,
/* 94790*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 94792*/        OPC_EmitConvertToTarget, 1,
/* 94794*/        OPC_EmitNodeXForm, 1, 3, // t2_so_imm_not_XFORM
/* 94797*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94800*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94803*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94806*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 94809*/        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))
/* 94821*/      /*Scope*/ 102, /*->94924*/
/* 94822*/        OPC_CheckPredicate, 23, // Predicate_imm0_65535_neg
/* 94824*/        OPC_MoveParent,
/* 94825*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 94826*/        OPC_CheckType, MVT::i32,
/* 94828*/        OPC_Scope, 46, /*->94876*/ // 2 children in Scope
/* 94830*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 94832*/          OPC_EmitConvertToTarget, 1,
/* 94834*/          OPC_EmitNodeXForm, 9, 3, // imm_not_XFORM
/* 94837*/          OPC_EmitInteger, MVT::i32, 14, 
/* 94840*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94843*/          OPC_EmitNode1, TARGET_VAL(ARM::MOVi16), 0,
                        MVT::i32, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 94852*/          OPC_EmitInteger, MVT::i32, 14, 
/* 94855*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94858*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94861*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 94864*/          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)))
/* 94876*/        /*Scope*/ 46, /*->94923*/
/* 94877*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 94879*/          OPC_EmitConvertToTarget, 1,
/* 94881*/          OPC_EmitNodeXForm, 9, 3, // imm_not_XFORM
/* 94884*/          OPC_EmitInteger, MVT::i32, 14, 
/* 94887*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94890*/          OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi16), 0,
                        MVT::i32, 3/*#Ops*/, 4, 5, 6,  // Results = #7
/* 94899*/          OPC_EmitInteger, MVT::i32, 14, 
/* 94902*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94905*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94908*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 94911*/          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)))
/* 94923*/        0, /*End of Scope*/
/* 94924*/      0, /*End of Scope*/
/* 94925*/    /*Scope*/ 74, /*->95000*/
/* 94926*/      OPC_RecordChild2, // #2 = physreg input CPSR
/* 94927*/      OPC_CheckType, MVT::i32,
/* 94929*/      OPC_Scope, 26, /*->94957*/ // 3 children in Scope
/* 94931*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 94933*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94936*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94939*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94942*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 94945*/        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)
/* 94957*/      /*Scope*/ 14, /*->94972*/
/* 94958*/        OPC_CheckPatternPredicate, 66, // (Subtarget->isThumb1Only())
/* 94960*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 94963*/        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)
/* 94972*/      /*Scope*/ 26, /*->94999*/
/* 94973*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 94975*/        OPC_EmitInteger, MVT::i32, 14, 
/* 94978*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94981*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 94984*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 94987*/        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)
/* 94999*/      0, /*End of Scope*/
/* 95000*/    0, /*End of Scope*/
/* 95001*/  /*SwitchOpcode*/ 110|128,2/*366*/, TARGET_VAL(ARMISD::SUBE),// ->95371
/* 95005*/    OPC_RecordChild0, // #0 = $Rn
/* 95006*/    OPC_Scope, 75|128,1/*203*/, /*->95212*/ // 3 children in Scope
/* 95009*/      OPC_RecordChild1, // #1 = $shift
/* 95010*/      OPC_Scope, 31|128,1/*159*/, /*->95172*/ // 2 children in Scope
/* 95013*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 95014*/        OPC_CheckType, MVT::i32,
/* 95016*/        OPC_Scope, 122, /*->95140*/ // 2 children in Scope
/* 95018*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 95020*/          OPC_Scope, 29, /*->95051*/ // 4 children in Scope
/* 95022*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #3 #4 #5
/* 95025*/            OPC_EmitInteger, MVT::i32, 14, 
/* 95028*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95031*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95034*/            OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 95037*/            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)
/* 95051*/          /*Scope*/ 29, /*->95081*/
/* 95052*/            OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectRegShifterOperand:$shift #3 #4 #5
/* 95055*/            OPC_EmitInteger, MVT::i32, 14, 
/* 95058*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95061*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95064*/            OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 95067*/            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)
/* 95081*/          /*Scope*/ 28, /*->95110*/
/* 95082*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #3 #4
/* 95085*/            OPC_EmitInteger, MVT::i32, 14, 
/* 95088*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95091*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95094*/            OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 95097*/            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)
/* 95110*/          /*Scope*/ 28, /*->95139*/
/* 95111*/            OPC_CheckComplexPat, /*CP*/3, /*#*/0, // SelectImmShifterOperand:$shift #3 #4
/* 95114*/            OPC_EmitInteger, MVT::i32, 14, 
/* 95117*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95120*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95123*/            OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 95126*/            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)
/* 95139*/          0, /*End of Scope*/
/* 95140*/        /*Scope*/ 30, /*->95171*/
/* 95141*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 95143*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #3 #4
/* 95146*/          OPC_EmitInteger, MVT::i32, 14, 
/* 95149*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95152*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95155*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 95158*/          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)
/* 95171*/        0, /*End of Scope*/
/* 95172*/      /*Scope*/ 38, /*->95211*/
/* 95173*/        OPC_MoveChild1,
/* 95174*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 95177*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 95179*/        OPC_MoveParent,
/* 95180*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 95181*/        OPC_CheckType, MVT::i32,
/* 95183*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 95185*/        OPC_EmitConvertToTarget, 1,
/* 95187*/        OPC_EmitInteger, MVT::i32, 14, 
/* 95190*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95193*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95196*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 95199*/        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)
/* 95211*/      0, /*End of Scope*/
/* 95212*/    /*Scope*/ 39, /*->95252*/
/* 95213*/      OPC_MoveChild0,
/* 95214*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 95217*/      OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 95219*/      OPC_MoveParent,
/* 95220*/      OPC_RecordChild1, // #1 = $Rn
/* 95221*/      OPC_RecordChild2, // #2 = physreg input CPSR
/* 95222*/      OPC_CheckType, MVT::i32,
/* 95224*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 95226*/      OPC_EmitConvertToTarget, 0,
/* 95228*/      OPC_EmitInteger, MVT::i32, 14, 
/* 95231*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95234*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95237*/      OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 95240*/      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)
/* 95252*/    /*Scope*/ 117, /*->95370*/
/* 95253*/      OPC_RecordChild1, // #1 = $imm
/* 95254*/      OPC_Scope, 38, /*->95294*/ // 2 children in Scope
/* 95256*/        OPC_MoveChild1,
/* 95257*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 95260*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 95262*/        OPC_MoveParent,
/* 95263*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 95264*/        OPC_CheckType, MVT::i32,
/* 95266*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 95268*/        OPC_EmitConvertToTarget, 1,
/* 95270*/        OPC_EmitInteger, MVT::i32, 14, 
/* 95273*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95276*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95279*/        OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 95282*/        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)
/* 95294*/      /*Scope*/ 74, /*->95369*/
/* 95295*/        OPC_RecordChild2, // #2 = physreg input CPSR
/* 95296*/        OPC_CheckType, MVT::i32,
/* 95298*/        OPC_Scope, 26, /*->95326*/ // 3 children in Scope
/* 95300*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 95302*/          OPC_EmitInteger, MVT::i32, 14, 
/* 95305*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95308*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95311*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 95314*/          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)
/* 95326*/        /*Scope*/ 14, /*->95341*/
/* 95327*/          OPC_CheckPatternPredicate, 66, // (Subtarget->isThumb1Only())
/* 95329*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 95332*/          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)
/* 95341*/        /*Scope*/ 26, /*->95368*/
/* 95342*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 95344*/          OPC_EmitInteger, MVT::i32, 14, 
/* 95347*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95350*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95353*/          OPC_EmitCopyToReg, 2, ARM::CPSR,
/* 95356*/          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)
/* 95368*/        0, /*End of Scope*/
/* 95369*/      0, /*End of Scope*/
/* 95370*/    0, /*End of Scope*/
/* 95371*/  /*SwitchOpcode*/ 12|128,2/*268*/, TARGET_VAL(ARMISD::CMP),// ->95643
/* 95375*/    OPC_RecordChild0, // #0 = $Rn
/* 95376*/    OPC_CheckChild0Type, MVT::i32,
/* 95378*/    OPC_RecordChild1, // #1 = $shift
/* 95379*/    OPC_Scope, 47, /*->95428*/ // 6 children in Scope
/* 95381*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 95383*/      OPC_Scope, 21, /*->95406*/ // 2 children in Scope
/* 95385*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // SelectRegShifterOperand:$shift #2 #3 #4
/* 95388*/        OPC_EmitInteger, MVT::i32, 14, 
/* 95391*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95394*/        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)
/* 95406*/      /*Scope*/ 20, /*->95427*/
/* 95407*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // SelectImmShifterOperand:$shift #2 #3
/* 95410*/        OPC_EmitInteger, MVT::i32, 14, 
/* 95413*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95416*/        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)
/* 95427*/      0, /*End of Scope*/
/* 95428*/    /*Scope*/ 22, /*->95451*/
/* 95429*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 95431*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectShiftImmShifterOperand:$ShiftedRm #2 #3
/* 95434*/      OPC_EmitInteger, MVT::i32, 14, 
/* 95437*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95440*/      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)
/* 95451*/    /*Scope*/ 4|128,1/*132*/, /*->95585*/
/* 95453*/      OPC_MoveChild1,
/* 95454*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 95457*/      OPC_Scope, 23, /*->95482*/ // 5 children in Scope
/* 95459*/        OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 95461*/        OPC_MoveParent,
/* 95462*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 95464*/        OPC_EmitConvertToTarget, 1,
/* 95466*/        OPC_EmitInteger, MVT::i32, 14, 
/* 95469*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95472*/        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)
/* 95482*/      /*Scope*/ 26, /*->95509*/
/* 95483*/        OPC_CheckPredicate, 18, // Predicate_mod_imm_neg
/* 95485*/        OPC_MoveParent,
/* 95486*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 95488*/        OPC_EmitConvertToTarget, 1,
/* 95490*/        OPC_EmitNodeXForm, 3, 2, // imm_neg_XFORM
/* 95493*/        OPC_EmitInteger, MVT::i32, 14, 
/* 95496*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95499*/        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))
/* 95509*/      /*Scope*/ 23, /*->95533*/
/* 95510*/        OPC_CheckPredicate, 57, // Predicate_imm0_255
/* 95512*/        OPC_MoveParent,
/* 95513*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 95515*/        OPC_EmitConvertToTarget, 1,
/* 95517*/        OPC_EmitInteger, MVT::i32, 14, 
/* 95520*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95523*/        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)
/* 95533*/      /*Scope*/ 23, /*->95557*/
/* 95534*/        OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 95536*/        OPC_MoveParent,
/* 95537*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 95539*/        OPC_EmitConvertToTarget, 1,
/* 95541*/        OPC_EmitInteger, MVT::i32, 14, 
/* 95544*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95547*/        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)
/* 95557*/      /*Scope*/ 26, /*->95584*/
/* 95558*/        OPC_CheckPredicate, 21, // Predicate_t2_so_imm_neg
/* 95560*/        OPC_MoveParent,
/* 95561*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 95563*/        OPC_EmitConvertToTarget, 1,
/* 95565*/        OPC_EmitNodeXForm, 4, 2, // t2_so_imm_neg_XFORM
/* 95568*/        OPC_EmitInteger, MVT::i32, 14, 
/* 95571*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95574*/        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))
/* 95584*/      0, /*End of Scope*/
/* 95585*/    /*Scope*/ 18, /*->95604*/
/* 95586*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 95588*/      OPC_EmitInteger, MVT::i32, 14, 
/* 95591*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95594*/      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)
/* 95604*/    /*Scope*/ 18, /*->95623*/
/* 95605*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 95607*/      OPC_EmitInteger, MVT::i32, 14, 
/* 95610*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95613*/      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)
/* 95623*/    /*Scope*/ 18, /*->95642*/
/* 95624*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 95626*/      OPC_EmitInteger, MVT::i32, 14, 
/* 95629*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95632*/      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)
/* 95642*/    0, /*End of Scope*/
/* 95643*/  /*SwitchOpcode*/ 70, TARGET_VAL(ARMISD::CMN),// ->95716
/* 95646*/    OPC_RecordChild0, // #0 = $Rn
/* 95647*/    OPC_CheckChild0Type, MVT::i32,
/* 95649*/    OPC_Scope, 35, /*->95686*/ // 2 children in Scope
/* 95651*/      OPC_MoveChild1,
/* 95652*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/* 95655*/      OPC_CheckChild0Integer, 0, 
/* 95657*/      OPC_RecordChild1, // #1 = $imm
/* 95658*/      OPC_MoveChild1,
/* 95659*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 95662*/      OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/* 95664*/      OPC_MoveParent,
/* 95665*/      OPC_MoveParent,
/* 95666*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 95668*/      OPC_EmitConvertToTarget, 1,
/* 95670*/      OPC_EmitInteger, MVT::i32, 14, 
/* 95673*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95676*/      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)
/* 95686*/    /*Scope*/ 28, /*->95715*/
/* 95687*/      OPC_RecordChild1, // #1 = $imm
/* 95688*/      OPC_MoveChild1,
/* 95689*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 95692*/      OPC_CheckPredicate, 11, // Predicate_mod_imm
/* 95694*/      OPC_MoveParent,
/* 95695*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 95697*/      OPC_EmitConvertToTarget, 1,
/* 95699*/      OPC_EmitInteger, MVT::i32, 14, 
/* 95702*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95705*/      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)
/* 95715*/    0, /*End of Scope*/
/* 95716*/  /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(ISD::SHL),// ->95904
/* 95720*/    OPC_Scope, 56, /*->95778*/ // 2 children in Scope
/* 95722*/      OPC_RecordNode, // #0 = $src
/* 95723*/      OPC_CheckType, MVT::i32,
/* 95725*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 95727*/      OPC_Scope, 24, /*->95753*/ // 2 children in Scope
/* 95729*/        OPC_CheckComplexPat, /*CP*/10, /*#*/0, // SelectShiftRegShifterOperand:$src #1 #2 #3
/* 95732*/        OPC_EmitInteger, MVT::i32, 14, 
/* 95735*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95738*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95741*/        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)
/* 95753*/      /*Scope*/ 23, /*->95777*/
/* 95754*/        OPC_CheckComplexPat, /*CP*/11, /*#*/0, // SelectShiftImmShifterOperand:$src #1 #2
/* 95757*/        OPC_EmitInteger, MVT::i32, 14, 
/* 95760*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95763*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95766*/        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)
/* 95777*/      0, /*End of Scope*/
/* 95778*/    /*Scope*/ 124, /*->95903*/
/* 95779*/      OPC_RecordChild0, // #0 = $Rm
/* 95780*/      OPC_RecordChild1, // #1 = $imm
/* 95781*/      OPC_Scope, 66, /*->95849*/ // 2 children in Scope
/* 95783*/        OPC_MoveChild1,
/* 95784*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 95787*/        OPC_CheckType, MVT::i32,
/* 95789*/        OPC_Scope, 29, /*->95820*/ // 2 children in Scope
/* 95791*/          OPC_CheckPredicate, 89, // Predicate_imm1_31
/* 95793*/          OPC_MoveParent,
/* 95794*/          OPC_CheckType, MVT::i32,
/* 95796*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 95798*/          OPC_EmitConvertToTarget, 1,
/* 95800*/          OPC_EmitInteger, MVT::i32, 14, 
/* 95803*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95806*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95809*/          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)
/* 95820*/        /*Scope*/ 27, /*->95848*/
/* 95821*/          OPC_MoveParent,
/* 95822*/          OPC_CheckType, MVT::i32,
/* 95824*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 95826*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 95829*/          OPC_EmitConvertToTarget, 1,
/* 95831*/          OPC_EmitInteger, MVT::i32, 14, 
/* 95834*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95837*/          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)
/* 95848*/        0, /*End of Scope*/
/* 95849*/      /*Scope*/ 52, /*->95902*/
/* 95850*/        OPC_CheckChild1Type, MVT::i32,
/* 95852*/        OPC_CheckType, MVT::i32,
/* 95854*/        OPC_Scope, 22, /*->95878*/ // 2 children in Scope
/* 95856*/          OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 95858*/          OPC_EmitRegister, MVT::i32, ARM::CPSR,
/* 95861*/          OPC_EmitInteger, MVT::i32, 14, 
/* 95864*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95867*/          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)
/* 95878*/        /*Scope*/ 22, /*->95901*/
/* 95879*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 95881*/          OPC_EmitInteger, MVT::i32, 14, 
/* 95884*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95887*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95890*/          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)
/* 95901*/        0, /*End of Scope*/
/* 95902*/      0, /*End of Scope*/
/* 95903*/    0, /*End of Scope*/
/* 95904*/  /*SwitchOpcode*/ 16, TARGET_VAL(ISD::ATOMIC_FENCE),// ->95923
/* 95907*/    OPC_RecordNode, // #0 = 'atomic_fence' chained node
/* 95908*/    OPC_RecordChild1, // #1 = $ordering
/* 95909*/    OPC_MoveChild1,
/* 95910*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 95913*/    OPC_MoveParent,
/* 95914*/    OPC_CheckChild2Integer, 0, 
/* 95916*/    OPC_EmitMergeInputChains1_0,
/* 95917*/    OPC_MorphNodeTo0, TARGET_VAL(ARM::CompilerBarrier), 0|OPFL_Chain,
                  1/*#Ops*/, 1, 
              // Src: (atomic_fence (timm:{ *:[iPTR] }):$ordering, 0:{ *:[iPTR] }) - Complexity = 11
              // Dst: (CompilerBarrier (timm:{ *:[i32] }):$ordering)
/* 95923*/  /*SwitchOpcode*/ 0|128,3/*384*/, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->96311
/* 95927*/    OPC_Scope, 127, /*->96056*/ // 2 children in Scope
/* 95929*/      OPC_MoveChild0,
/* 95930*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/* 95933*/      OPC_RecordChild0, // #0 = $Rm
/* 95934*/      OPC_RecordChild1, // #1 = $rot
/* 95935*/      OPC_MoveChild1,
/* 95936*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 95939*/      OPC_CheckPredicate, 14, // Predicate_rot_imm
/* 95941*/      OPC_CheckType, MVT::i32,
/* 95943*/      OPC_MoveParent,
/* 95944*/      OPC_MoveParent,
/* 95945*/      OPC_MoveChild1,
/* 95946*/      OPC_Scope, 53, /*->96001*/ // 2 children in Scope
/* 95948*/        OPC_CheckValueType, MVT::i8,
/* 95950*/        OPC_MoveParent,
/* 95951*/        OPC_Scope, 23, /*->95976*/ // 2 children in Scope
/* 95953*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 95955*/          OPC_EmitConvertToTarget, 1,
/* 95957*/          OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 95960*/          OPC_EmitInteger, MVT::i32, 14, 
/* 95963*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95966*/          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))
/* 95976*/        /*Scope*/ 23, /*->96000*/
/* 95977*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 95979*/          OPC_EmitConvertToTarget, 1,
/* 95981*/          OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 95984*/          OPC_EmitInteger, MVT::i32, 14, 
/* 95987*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 95990*/          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))
/* 96000*/        0, /*End of Scope*/
/* 96001*/      /*Scope*/ 53, /*->96055*/
/* 96002*/        OPC_CheckValueType, MVT::i16,
/* 96004*/        OPC_MoveParent,
/* 96005*/        OPC_Scope, 23, /*->96030*/ // 2 children in Scope
/* 96007*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 96009*/          OPC_EmitConvertToTarget, 1,
/* 96011*/          OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 96014*/          OPC_EmitInteger, MVT::i32, 14, 
/* 96017*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96020*/          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))
/* 96030*/        /*Scope*/ 23, /*->96054*/
/* 96031*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 96033*/          OPC_EmitConvertToTarget, 1,
/* 96035*/          OPC_EmitNodeXForm, 2, 2, // rot_imm_XFORM
/* 96038*/          OPC_EmitInteger, MVT::i32, 14, 
/* 96041*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96044*/          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))
/* 96054*/        0, /*End of Scope*/
/* 96055*/      0, /*End of Scope*/
/* 96056*/    /*Scope*/ 124|128,1/*252*/, /*->96310*/
/* 96058*/      OPC_RecordChild0, // #0 = $Src
/* 96059*/      OPC_MoveChild1,
/* 96060*/      OPC_Scope, 67, /*->96129*/ // 5 children in Scope
/* 96062*/        OPC_CheckValueType, MVT::i8,
/* 96064*/        OPC_MoveParent,
/* 96065*/        OPC_Scope, 21, /*->96088*/ // 3 children in Scope
/* 96067*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 96069*/          OPC_EmitInteger, MVT::i32, 0, 
/* 96072*/          OPC_EmitInteger, MVT::i32, 14, 
/* 96075*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96078*/          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] })
/* 96088*/        /*Scope*/ 17, /*->96106*/
/* 96089*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 96091*/          OPC_EmitInteger, MVT::i32, 14, 
/* 96094*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96097*/          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)
/* 96106*/        /*Scope*/ 21, /*->96128*/
/* 96107*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 96109*/          OPC_EmitInteger, MVT::i32, 0, 
/* 96112*/          OPC_EmitInteger, MVT::i32, 14, 
/* 96115*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96118*/          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] })
/* 96128*/        0, /*End of Scope*/
/* 96129*/      /*Scope*/ 67, /*->96197*/
/* 96130*/        OPC_CheckValueType, MVT::i16,
/* 96132*/        OPC_MoveParent,
/* 96133*/        OPC_Scope, 21, /*->96156*/ // 3 children in Scope
/* 96135*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 96137*/          OPC_EmitInteger, MVT::i32, 0, 
/* 96140*/          OPC_EmitInteger, MVT::i32, 14, 
/* 96143*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96146*/          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] })
/* 96156*/        /*Scope*/ 17, /*->96174*/
/* 96157*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 96159*/          OPC_EmitInteger, MVT::i32, 14, 
/* 96162*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96165*/          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)
/* 96174*/        /*Scope*/ 21, /*->96196*/
/* 96175*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 96177*/          OPC_EmitInteger, MVT::i32, 0, 
/* 96180*/          OPC_EmitInteger, MVT::i32, 14, 
/* 96183*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96186*/          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] })
/* 96196*/        0, /*End of Scope*/
/* 96197*/      /*Scope*/ 29, /*->96227*/
/* 96198*/        OPC_CheckValueType, MVT::v4i16,
/* 96200*/        OPC_MoveParent,
/* 96201*/        OPC_CheckType, MVT::v4i32,
/* 96203*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 96205*/        OPC_EmitInteger, MVT::i32, 0, 
/* 96208*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96211*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 96217*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVLs16bh), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (sext_inreg:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, v4i16:{ *:[Other] }) - Complexity = 3
                  // Dst: (MVE_VMOVLs16bh:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src)
/* 96227*/      /*Scope*/ 29, /*->96257*/
/* 96228*/        OPC_CheckValueType, MVT::v8i8,
/* 96230*/        OPC_MoveParent,
/* 96231*/        OPC_CheckType, MVT::v8i16,
/* 96233*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 96235*/        OPC_EmitInteger, MVT::i32, 0, 
/* 96238*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96241*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 96247*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVLs8bh), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (sext_inreg:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, v8i8:{ *:[Other] }) - Complexity = 3
                  // Dst: (MVE_VMOVLs8bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src)
/* 96257*/      /*Scope*/ 51, /*->96309*/
/* 96258*/        OPC_CheckValueType, MVT::v4i8,
/* 96260*/        OPC_MoveParent,
/* 96261*/        OPC_CheckType, MVT::v4i32,
/* 96263*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 96265*/        OPC_EmitInteger, MVT::i32, 0, 
/* 96268*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96271*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/* 96277*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVLs8bh), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3,  // Results = #4
/* 96287*/        OPC_EmitInteger, MVT::i32, 0, 
/* 96290*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96293*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #7
/* 96299*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVLs16bh), 0,
                      MVT::v4i32, 4/*#Ops*/, 4, 5, 6, 7, 
                  // Src: (sext_inreg:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, v4i8:{ *:[Other] }) - Complexity = 3
                  // Dst: (MVE_VMOVLs16bh:{ *:[v4i32] } (MVE_VMOVLs8bh:{ *:[v16i8] } MQPR:{ *:[v4i32] }:$src))
/* 96309*/      0, /*End of Scope*/
/* 96310*/    0, /*End of Scope*/
/* 96311*/  /*SwitchOpcode*/ 58, TARGET_VAL(ISD::CALLSEQ_END),// ->96372
/* 96314*/    OPC_RecordNode, // #0 = 'ARMcallseq_end' chained node
/* 96315*/    OPC_CaptureGlueInput,
/* 96316*/    OPC_RecordChild1, // #1 = $amt1
/* 96317*/    OPC_MoveChild1,
/* 96318*/    OPC_SwitchOpcode /*2 cases */, 24, TARGET_VAL(ISD::TargetConstant),// ->96346
/* 96322*/      OPC_MoveParent,
/* 96323*/      OPC_RecordChild2, // #2 = $amt2
/* 96324*/      OPC_MoveChild2,
/* 96325*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 96328*/      OPC_MoveParent,
/* 96329*/      OPC_EmitMergeInputChains1_0,
/* 96330*/      OPC_EmitInteger, MVT::i32, 14, 
/* 96333*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96336*/      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)
/* 96346*/    /*SwitchOpcode*/ 22, TARGET_VAL(ISD::Constant),// ->96371
/* 96349*/      OPC_MoveParent,
/* 96350*/      OPC_RecordChild2, // #2 = $amt2
/* 96351*/      OPC_MoveChild2,
/* 96352*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96355*/      OPC_MoveParent,
/* 96356*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 96358*/      OPC_EmitMergeInputChains1_0,
/* 96359*/      OPC_EmitConvertToTarget, 1,
/* 96361*/      OPC_EmitConvertToTarget, 2,
/* 96363*/      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)
/* 96371*/    0, // EndSwitchOpcode
/* 96372*/  /*SwitchOpcode*/ 57, TARGET_VAL(ISD::CALLSEQ_START),// ->96432
/* 96375*/    OPC_RecordNode, // #0 = 'ARMcallseq_start' chained node
/* 96376*/    OPC_RecordChild1, // #1 = $amt
/* 96377*/    OPC_MoveChild1,
/* 96378*/    OPC_SwitchOpcode /*2 cases */, 24, TARGET_VAL(ISD::TargetConstant),// ->96406
/* 96382*/      OPC_MoveParent,
/* 96383*/      OPC_RecordChild2, // #2 = $amt2
/* 96384*/      OPC_MoveChild2,
/* 96385*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 96388*/      OPC_MoveParent,
/* 96389*/      OPC_EmitMergeInputChains1_0,
/* 96390*/      OPC_EmitInteger, MVT::i32, 14, 
/* 96393*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96396*/      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)
/* 96406*/    /*SwitchOpcode*/ 22, TARGET_VAL(ISD::Constant),// ->96431
/* 96409*/      OPC_MoveParent,
/* 96410*/      OPC_RecordChild2, // #2 = $amt2
/* 96411*/      OPC_MoveChild2,
/* 96412*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96415*/      OPC_MoveParent,
/* 96416*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 96418*/      OPC_EmitMergeInputChains1_0,
/* 96419*/      OPC_EmitConvertToTarget, 1,
/* 96421*/      OPC_EmitConvertToTarget, 2,
/* 96423*/      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)
/* 96431*/    0, // EndSwitchOpcode
/* 96432*/  /*SwitchOpcode*/ 31, TARGET_VAL(ARMISD::COPY_STRUCT_BYVAL),// ->96466
/* 96435*/    OPC_RecordNode, // #0 = 'ARMcopystructbyval' chained node
/* 96436*/    OPC_CaptureGlueInput,
/* 96437*/    OPC_RecordChild1, // #1 = $dst
/* 96438*/    OPC_RecordChild2, // #2 = $src
/* 96439*/    OPC_RecordChild3, // #3 = $size
/* 96440*/    OPC_MoveChild3,
/* 96441*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96444*/    OPC_MoveParent,
/* 96445*/    OPC_RecordChild4, // #4 = $alignment
/* 96446*/    OPC_MoveChild4,
/* 96447*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96450*/    OPC_MoveParent,
/* 96451*/    OPC_EmitMergeInputChains1_0,
/* 96452*/    OPC_EmitConvertToTarget, 3,
/* 96454*/    OPC_EmitConvertToTarget, 4,
/* 96456*/    OPC_MorphNodeTo1, TARGET_VAL(ARM::COPY_STRUCT_BYVAL_I32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  MVT::i32, 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:{ *:[i32] } GPR:{ *:[i32] }:$dst, GPR:{ *:[i32] }:$src, (imm:{ *:[i32] }):$size, (imm:{ *:[i32] }):$alignment)
/* 96466*/  /*SwitchOpcode*/ 91, TARGET_VAL(ARMISD::SMMLAR),// ->96560
/* 96469*/    OPC_RecordChild0, // #0 = $Rn
/* 96470*/    OPC_RecordChild1, // #1 = $Rm
/* 96471*/    OPC_Scope, 42, /*->96515*/ // 2 children in Scope
/* 96473*/      OPC_CheckChild2Integer, 0, 
/* 96475*/      OPC_Scope, 18, /*->96495*/ // 2 children in Scope
/* 96477*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 96479*/        OPC_EmitInteger, MVT::i32, 14, 
/* 96482*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96485*/        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)
/* 96495*/      /*Scope*/ 18, /*->96514*/
/* 96496*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 96498*/        OPC_EmitInteger, MVT::i32, 14, 
/* 96501*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96504*/        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)
/* 96514*/      0, /*End of Scope*/
/* 96515*/    /*Scope*/ 43, /*->96559*/
/* 96516*/      OPC_RecordChild2, // #2 = $Ra
/* 96517*/      OPC_Scope, 19, /*->96538*/ // 2 children in Scope
/* 96519*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/* 96521*/        OPC_EmitInteger, MVT::i32, 14, 
/* 96524*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96527*/        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)
/* 96538*/      /*Scope*/ 19, /*->96558*/
/* 96539*/        OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/* 96541*/        OPC_EmitInteger, MVT::i32, 14, 
/* 96544*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96547*/        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)
/* 96558*/      0, /*End of Scope*/
/* 96559*/    0, /*End of Scope*/
/* 96560*/  /*SwitchOpcode*/ 65, TARGET_VAL(ARMISD::SSAT),// ->96628
/* 96563*/    OPC_RecordChild0, // #0 = $Rn
/* 96564*/    OPC_RecordChild1, // #1 = $imm
/* 96565*/    OPC_MoveChild1,
/* 96566*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96569*/    OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 96571*/    OPC_CheckType, MVT::i32,
/* 96573*/    OPC_MoveParent,
/* 96574*/    OPC_CheckType, MVT::i32,
/* 96576*/    OPC_Scope, 24, /*->96602*/ // 2 children in Scope
/* 96578*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 96580*/      OPC_EmitConvertToTarget, 1,
/* 96582*/      OPC_EmitInteger, MVT::i32, 0, 
/* 96585*/      OPC_EmitInteger, MVT::i32, 14, 
/* 96588*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96591*/      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] })
/* 96602*/    /*Scope*/ 24, /*->96627*/
/* 96603*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 96605*/      OPC_EmitConvertToTarget, 1,
/* 96607*/      OPC_EmitInteger, MVT::i32, 0, 
/* 96610*/      OPC_EmitInteger, MVT::i32, 14, 
/* 96613*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96616*/      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] })
/* 96627*/    0, /*End of Scope*/
/* 96628*/  /*SwitchOpcode*/ 65, TARGET_VAL(ARMISD::USAT),// ->96696
/* 96631*/    OPC_RecordChild0, // #0 = $Rn
/* 96632*/    OPC_RecordChild1, // #1 = $imm
/* 96633*/    OPC_MoveChild1,
/* 96634*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96637*/    OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 96639*/    OPC_CheckType, MVT::i32,
/* 96641*/    OPC_MoveParent,
/* 96642*/    OPC_CheckType, MVT::i32,
/* 96644*/    OPC_Scope, 24, /*->96670*/ // 2 children in Scope
/* 96646*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 96648*/      OPC_EmitConvertToTarget, 1,
/* 96650*/      OPC_EmitInteger, MVT::i32, 0, 
/* 96653*/      OPC_EmitInteger, MVT::i32, 14, 
/* 96656*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96659*/      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] })
/* 96670*/    /*Scope*/ 24, /*->96695*/
/* 96671*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 96673*/      OPC_EmitConvertToTarget, 1,
/* 96675*/      OPC_EmitInteger, MVT::i32, 0, 
/* 96678*/      OPC_EmitInteger, MVT::i32, 14, 
/* 96681*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96684*/      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] })
/* 96695*/    0, /*End of Scope*/
/* 96696*/  /*SwitchOpcode*/ 56, TARGET_VAL(ARMISD::BFI),// ->96755
/* 96699*/    OPC_RecordChild0, // #0 = $src
/* 96700*/    OPC_RecordChild1, // #1 = $Rn
/* 96701*/    OPC_RecordChild2, // #2 = $imm
/* 96702*/    OPC_MoveChild2,
/* 96703*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96706*/    OPC_CheckPredicate, 29, // Predicate_bf_inv_mask_imm
/* 96708*/    OPC_MoveParent,
/* 96709*/    OPC_Scope, 21, /*->96732*/ // 2 children in Scope
/* 96711*/      OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/* 96713*/      OPC_EmitConvertToTarget, 2,
/* 96715*/      OPC_EmitInteger, MVT::i32, 14, 
/* 96718*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96721*/      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)
/* 96732*/    /*Scope*/ 21, /*->96754*/
/* 96733*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/* 96735*/      OPC_EmitConvertToTarget, 2,
/* 96737*/      OPC_EmitInteger, MVT::i32, 14, 
/* 96740*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96743*/      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)
/* 96754*/    0, /*End of Scope*/
/* 96755*/  /*SwitchOpcode*/ 24, TARGET_VAL(ARMISD::LSLS),// ->96782
/* 96758*/    OPC_RecordChild0, // #0 = $Rn
/* 96759*/    OPC_RecordChild1, // #1 = $imm5
/* 96760*/    OPC_MoveChild1,
/* 96761*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96764*/    OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 96766*/    OPC_MoveParent,
/* 96767*/    OPC_CheckType, MVT::i32,
/* 96769*/    OPC_CheckPatternPredicate, 66, // (Subtarget->isThumb1Only())
/* 96771*/    OPC_EmitConvertToTarget, 1,
/* 96773*/    OPC_MorphNodeTo2, TARGET_VAL(ARM::tLSLSri), 0,
                  MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
              // Src: (ARMlsls:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm5) - Complexity = 7
              // Dst: (tLSLSri:{ *:[i32] }:{ *:[i32] } tGPR:{ *:[i32] }:$Rn, (imm:{ *:[i32] }):$imm5)
/* 96782*/  /*SwitchOpcode*/ 56, TARGET_VAL(ARMISD::INTRET_FLAG),// ->96841
/* 96785*/    OPC_RecordNode, // #0 = 'ARMintretflag' chained node
/* 96786*/    OPC_CaptureGlueInput,
/* 96787*/    OPC_RecordChild1, // #1 = $imm
/* 96788*/    OPC_MoveChild1,
/* 96789*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96792*/    OPC_Scope, 25, /*->96819*/ // 2 children in Scope
/* 96794*/      OPC_CheckPredicate, 57, // Predicate_imm0_255
/* 96796*/      OPC_CheckType, MVT::i32,
/* 96798*/      OPC_MoveParent,
/* 96799*/      OPC_CheckPatternPredicate, 67, // (!Subtarget->isMClass()) && (Subtarget->isThumb2())
/* 96801*/      OPC_EmitMergeInputChains1_0,
/* 96802*/      OPC_EmitConvertToTarget, 1,
/* 96804*/      OPC_EmitInteger, MVT::i32, 14, 
/* 96807*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96810*/      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)
/* 96819*/    /*Scope*/ 20, /*->96840*/
/* 96820*/      OPC_MoveParent,
/* 96821*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 96823*/      OPC_EmitMergeInputChains1_0,
/* 96824*/      OPC_EmitConvertToTarget, 1,
/* 96826*/      OPC_EmitInteger, MVT::i32, 14, 
/* 96829*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96832*/      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)
/* 96840*/    0, /*End of Scope*/
/* 96841*/  /*SwitchOpcode*/ 26, TARGET_VAL(ARMISD::CSINC),// ->96870
/* 96844*/    OPC_CaptureGlueInput,
/* 96845*/    OPC_RecordChild0, // #0 = $tval
/* 96846*/    OPC_RecordChild1, // #1 = $fval
/* 96847*/    OPC_RecordChild2, // #2 = $imm
/* 96848*/    OPC_MoveChild2,
/* 96849*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96852*/    OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 96854*/    OPC_MoveParent,
/* 96855*/    OPC_CheckType, MVT::i32,
/* 96857*/    OPC_CheckPatternPredicate, 56, // (Subtarget->hasV8_1MMainlineOps())
/* 96859*/    OPC_EmitConvertToTarget, 2,
/* 96861*/    OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CSINC), 0|OPFL_GlueInput,
                  MVT::i32, 3/*#Ops*/, 0, 1, 3, 
              // Src: (ARMcsinc:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, GPRwithZR:{ *:[i32] }:$fval, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
              // Dst: (t2CSINC:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, GPRwithZR:{ *:[i32] }:$fval, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
/* 96870*/  /*SwitchOpcode*/ 26, TARGET_VAL(ARMISD::CSINV),// ->96899
/* 96873*/    OPC_CaptureGlueInput,
/* 96874*/    OPC_RecordChild0, // #0 = $tval
/* 96875*/    OPC_RecordChild1, // #1 = $fval
/* 96876*/    OPC_RecordChild2, // #2 = $imm
/* 96877*/    OPC_MoveChild2,
/* 96878*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96881*/    OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 96883*/    OPC_MoveParent,
/* 96884*/    OPC_CheckType, MVT::i32,
/* 96886*/    OPC_CheckPatternPredicate, 56, // (Subtarget->hasV8_1MMainlineOps())
/* 96888*/    OPC_EmitConvertToTarget, 2,
/* 96890*/    OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CSINV), 0|OPFL_GlueInput,
                  MVT::i32, 3/*#Ops*/, 0, 1, 3, 
              // Src: (ARMcsinv:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, GPRwithZR:{ *:[i32] }:$fval, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
              // Dst: (t2CSINV:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, GPRwithZR:{ *:[i32] }:$fval, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
/* 96899*/  /*SwitchOpcode*/ 26, TARGET_VAL(ARMISD::CSNEG),// ->96928
/* 96902*/    OPC_CaptureGlueInput,
/* 96903*/    OPC_RecordChild0, // #0 = $tval
/* 96904*/    OPC_RecordChild1, // #1 = $fval
/* 96905*/    OPC_RecordChild2, // #2 = $imm
/* 96906*/    OPC_MoveChild2,
/* 96907*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96910*/    OPC_CheckPredicate, 31, // Predicate_imm0_31
/* 96912*/    OPC_MoveParent,
/* 96913*/    OPC_CheckType, MVT::i32,
/* 96915*/    OPC_CheckPatternPredicate, 56, // (Subtarget->hasV8_1MMainlineOps())
/* 96917*/    OPC_EmitConvertToTarget, 2,
/* 96919*/    OPC_MorphNodeTo1, TARGET_VAL(ARM::t2CSNEG), 0|OPFL_GlueInput,
                  MVT::i32, 3/*#Ops*/, 0, 1, 3, 
              // Src: (ARMcsneg:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, GPRwithZR:{ *:[i32] }:$fval, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
              // Dst: (t2CSNEG:{ *:[i32] } GPRwithZR:{ *:[i32] }:$tval, GPRwithZR:{ *:[i32] }:$fval, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
/* 96928*/  /*SwitchOpcode*/ 64, TARGET_VAL(ARMISD::ASRL),// ->96995
/* 96931*/    OPC_RecordChild0, // #0 = $RdaLo_src
/* 96932*/    OPC_RecordChild1, // #1 = $RdaHi_src
/* 96933*/    OPC_RecordChild2, // #2 = $imm
/* 96934*/    OPC_Scope, 33, /*->96969*/ // 2 children in Scope
/* 96936*/      OPC_MoveChild2,
/* 96937*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96940*/      OPC_CheckPredicate, 1, // Predicate_long_shift
/* 96942*/      OPC_CheckType, MVT::i32,
/* 96944*/      OPC_MoveParent,
/* 96945*/      OPC_CheckType, MVT::i32,
/* 96947*/      OPC_CheckPatternPredicate, 18, // (Subtarget->hasMVEIntegerOps()) && (Subtarget->hasV8_1MMainlineOps())
/* 96949*/      OPC_EmitConvertToTarget, 2,
/* 96951*/      OPC_EmitInteger, MVT::i32, 14, 
/* 96954*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96957*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::MVE_ASRLi), 0,
                    MVT::i32, MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (ARMasrl:{ *:[i32] }:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaLo_src, tGPROdd:{ *:[i32] }:$RdaHi_src, (imm:{ *:[i32] })<<P:Predicate_long_shift>>:$imm) - Complexity = 7
                // Dst: (MVE_ASRLi:{ *:[i32] }:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaLo_src, tGPROdd:{ *:[i32] }:$RdaHi_src, (imm:{ *:[i32] }):$imm)
/* 96969*/    /*Scope*/ 24, /*->96994*/
/* 96970*/      OPC_CheckChild2Type, MVT::i32,
/* 96972*/      OPC_CheckType, MVT::i32,
/* 96974*/      OPC_CheckPatternPredicate, 18, // (Subtarget->hasMVEIntegerOps()) && (Subtarget->hasV8_1MMainlineOps())
/* 96976*/      OPC_EmitInteger, MVT::i32, 14, 
/* 96979*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 96982*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::MVE_ASRLr), 0,
                    MVT::i32, MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (ARMasrl:{ *:[i32] }:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaLo_src, tGPROdd:{ *:[i32] }:$RdaHi_src, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (MVE_ASRLr:{ *:[i32] }:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaLo_src, tGPROdd:{ *:[i32] }:$RdaHi_src, rGPR:{ *:[i32] }:$Rm)
/* 96994*/    0, /*End of Scope*/
/* 96995*/  /*SwitchOpcode*/ 64, TARGET_VAL(ARMISD::LSLL),// ->97062
/* 96998*/    OPC_RecordChild0, // #0 = $RdaLo_src
/* 96999*/    OPC_RecordChild1, // #1 = $RdaHi_src
/* 97000*/    OPC_RecordChild2, // #2 = $imm
/* 97001*/    OPC_Scope, 33, /*->97036*/ // 2 children in Scope
/* 97003*/      OPC_MoveChild2,
/* 97004*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97007*/      OPC_CheckPredicate, 1, // Predicate_long_shift
/* 97009*/      OPC_CheckType, MVT::i32,
/* 97011*/      OPC_MoveParent,
/* 97012*/      OPC_CheckType, MVT::i32,
/* 97014*/      OPC_CheckPatternPredicate, 18, // (Subtarget->hasMVEIntegerOps()) && (Subtarget->hasV8_1MMainlineOps())
/* 97016*/      OPC_EmitConvertToTarget, 2,
/* 97018*/      OPC_EmitInteger, MVT::i32, 14, 
/* 97021*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97024*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::MVE_LSLLi), 0,
                    MVT::i32, MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (ARMlsll:{ *:[i32] }:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaLo_src, tGPROdd:{ *:[i32] }:$RdaHi_src, (imm:{ *:[i32] })<<P:Predicate_long_shift>>:$imm) - Complexity = 7
                // Dst: (MVE_LSLLi:{ *:[i32] }:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaLo_src, tGPROdd:{ *:[i32] }:$RdaHi_src, (imm:{ *:[i32] }):$imm)
/* 97036*/    /*Scope*/ 24, /*->97061*/
/* 97037*/      OPC_CheckChild2Type, MVT::i32,
/* 97039*/      OPC_CheckType, MVT::i32,
/* 97041*/      OPC_CheckPatternPredicate, 18, // (Subtarget->hasMVEIntegerOps()) && (Subtarget->hasV8_1MMainlineOps())
/* 97043*/      OPC_EmitInteger, MVT::i32, 14, 
/* 97046*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97049*/      OPC_MorphNodeTo2, TARGET_VAL(ARM::MVE_LSLLr), 0,
                    MVT::i32, MVT::i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                // Src: (ARMlsll:{ *:[i32] }:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaLo_src, tGPROdd:{ *:[i32] }:$RdaHi_src, rGPR:{ *:[i32] }:$Rm) - Complexity = 3
                // Dst: (MVE_LSLLr:{ *:[i32] }:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaLo_src, tGPROdd:{ *:[i32] }:$RdaHi_src, rGPR:{ *:[i32] }:$Rm)
/* 97061*/    0, /*End of Scope*/
/* 97062*/  /*SwitchOpcode*/ 36, TARGET_VAL(ARMISD::LSRL),// ->97101
/* 97065*/    OPC_RecordChild0, // #0 = $RdaLo_src
/* 97066*/    OPC_RecordChild1, // #1 = $RdaHi_src
/* 97067*/    OPC_RecordChild2, // #2 = $imm
/* 97068*/    OPC_MoveChild2,
/* 97069*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97072*/    OPC_CheckPredicate, 1, // Predicate_long_shift
/* 97074*/    OPC_CheckType, MVT::i32,
/* 97076*/    OPC_MoveParent,
/* 97077*/    OPC_CheckType, MVT::i32,
/* 97079*/    OPC_CheckPatternPredicate, 18, // (Subtarget->hasMVEIntegerOps()) && (Subtarget->hasV8_1MMainlineOps())
/* 97081*/    OPC_EmitConvertToTarget, 2,
/* 97083*/    OPC_EmitInteger, MVT::i32, 14, 
/* 97086*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97089*/    OPC_MorphNodeTo2, TARGET_VAL(ARM::MVE_LSRL), 0,
                  MVT::i32, MVT::i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
              // Src: (ARMlsrl:{ *:[i32] }:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaLo_src, tGPROdd:{ *:[i32] }:$RdaHi_src, (imm:{ *:[i32] })<<P:Predicate_long_shift>>:$imm) - Complexity = 7
              // Dst: (MVE_LSRL:{ *:[i32] }:{ *:[i32] } tGPREven:{ *:[i32] }:$RdaLo_src, tGPROdd:{ *:[i32] }:$RdaHi_src, (imm:{ *:[i32] }):$imm)
/* 97101*/  /*SwitchOpcode*/ 116, TARGET_VAL(ARMISD::CALL),// ->97220
/* 97104*/    OPC_RecordNode, // #0 = 'ARMcall' chained node
/* 97105*/    OPC_CaptureGlueInput,
/* 97106*/    OPC_RecordChild1, // #1 = $func
/* 97107*/    OPC_Scope, 75, /*->97184*/ // 2 children in Scope
/* 97109*/      OPC_MoveChild1,
/* 97110*/      OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::TargetGlobalAddress),// ->97147
/* 97114*/        OPC_MoveParent,
/* 97115*/        OPC_Scope, 10, /*->97127*/ // 2 children in Scope
/* 97117*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 97119*/          OPC_EmitMergeInputChains1_0,
/* 97120*/          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)
/* 97127*/        /*Scope*/ 18, /*->97146*/
/* 97128*/          OPC_CheckPatternPredicate, 46, // (Subtarget->isThumb())
/* 97130*/          OPC_EmitMergeInputChains1_0,
/* 97131*/          OPC_EmitInteger, MVT::i32, 14, 
/* 97134*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97137*/          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)
/* 97146*/        0, /*End of Scope*/
/* 97147*/      /*SwitchOpcode*/ 33, TARGET_VAL(ISD::TargetExternalSymbol),// ->97183
/* 97150*/        OPC_MoveParent,
/* 97151*/        OPC_Scope, 10, /*->97163*/ // 2 children in Scope
/* 97153*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 97155*/          OPC_EmitMergeInputChains1_0,
/* 97156*/          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)
/* 97163*/        /*Scope*/ 18, /*->97182*/
/* 97164*/          OPC_CheckPatternPredicate, 46, // (Subtarget->isThumb())
/* 97166*/          OPC_EmitMergeInputChains1_0,
/* 97167*/          OPC_EmitInteger, MVT::i32, 14, 
/* 97170*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97173*/          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)
/* 97182*/        0, /*End of Scope*/
/* 97183*/      0, // EndSwitchOpcode
/* 97184*/    /*Scope*/ 34, /*->97219*/
/* 97185*/      OPC_CheckChild1Type, MVT::i32,
/* 97187*/      OPC_Scope, 10, /*->97199*/ // 2 children in Scope
/* 97189*/        OPC_CheckPatternPredicate, 63, // (Subtarget->hasV5TOps()) && (!Subtarget->isThumb())
/* 97191*/        OPC_EmitMergeInputChains1_0,
/* 97192*/        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)
/* 97199*/      /*Scope*/ 18, /*->97218*/
/* 97200*/        OPC_CheckPatternPredicate, 68, // (Subtarget->hasV5TOps()) && (Subtarget->isThumb())
/* 97202*/        OPC_EmitMergeInputChains1_0,
/* 97203*/        OPC_EmitInteger, MVT::i32, 14, 
/* 97206*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97209*/        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)
/* 97218*/      0, /*End of Scope*/
/* 97219*/    0, /*End of Scope*/
/* 97220*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::CALL_PRED),// ->97273
/* 97223*/    OPC_RecordNode, // #0 = 'ARMcall_pred' chained node
/* 97224*/    OPC_CaptureGlueInput,
/* 97225*/    OPC_RecordChild1, // #1 = $func
/* 97226*/    OPC_Scope, 23, /*->97251*/ // 2 children in Scope
/* 97228*/      OPC_MoveChild1,
/* 97229*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
/* 97232*/      OPC_MoveParent,
/* 97233*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 97235*/      OPC_EmitMergeInputChains1_0,
/* 97236*/      OPC_EmitInteger, MVT::i32, 14, 
/* 97239*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97242*/      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)
/* 97251*/    /*Scope*/ 20, /*->97272*/
/* 97252*/      OPC_CheckChild1Type, MVT::i32,
/* 97254*/      OPC_CheckPatternPredicate, 63, // (Subtarget->hasV5TOps()) && (!Subtarget->isThumb())
/* 97256*/      OPC_EmitMergeInputChains1_0,
/* 97257*/      OPC_EmitInteger, MVT::i32, 14, 
/* 97260*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97263*/      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)
/* 97272*/    0, /*End of Scope*/
/* 97273*/  /*SwitchOpcode*/ 75, TARGET_VAL(ARMISD::CALL_NOLINK),// ->97351
/* 97276*/    OPC_RecordNode, // #0 = 'ARMcall_nolink' chained node
/* 97277*/    OPC_CaptureGlueInput,
/* 97278*/    OPC_RecordChild1, // #1 = $func
/* 97279*/    OPC_Scope, 31, /*->97312*/ // 2 children in Scope
/* 97281*/      OPC_MoveChild1,
/* 97282*/      OPC_SwitchOpcode /*2 cases */, 11, TARGET_VAL(ISD::TargetGlobalAddress),// ->97297
/* 97286*/        OPC_MoveParent,
/* 97287*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 97289*/        OPC_EmitMergeInputChains1_0,
/* 97290*/        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)
/* 97297*/      /*SwitchOpcode*/ 11, TARGET_VAL(ISD::TargetExternalSymbol),// ->97311
/* 97300*/        OPC_MoveParent,
/* 97301*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/* 97303*/        OPC_EmitMergeInputChains1_0,
/* 97304*/        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)
/* 97311*/      0, // EndSwitchOpcode
/* 97312*/    /*Scope*/ 37, /*->97350*/
/* 97313*/      OPC_CheckChild1Type, MVT::i32,
/* 97315*/      OPC_Scope, 10, /*->97327*/ // 3 children in Scope
/* 97317*/        OPC_CheckPatternPredicate, 69, // (Subtarget->hasV4TOps()) && (!Subtarget->isThumb())
/* 97319*/        OPC_EmitMergeInputChains1_0,
/* 97320*/        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)
/* 97327*/      /*Scope*/ 10, /*->97338*/
/* 97328*/        OPC_CheckPatternPredicate, 70, // (!Subtarget->isThumb()) && (!Subtarget->hasV4TOps())
/* 97330*/        OPC_EmitMergeInputChains1_0,
/* 97331*/        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)
/* 97338*/      /*Scope*/ 10, /*->97349*/
/* 97339*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/* 97341*/        OPC_EmitMergeInputChains1_0,
/* 97342*/        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)
/* 97349*/      0, /*End of Scope*/
/* 97350*/    0, /*End of Scope*/
/* 97351*/  /*SwitchOpcode*/ 96|128,16/*2144*/, TARGET_VAL(ISD::SADDSAT),// ->99499
/* 97355*/    OPC_Scope, 51, /*->97408*/ // 16 children in Scope
/* 97357*/      OPC_MoveChild0,
/* 97358*/      OPC_CheckOpcode, TARGET_VAL(ISD::SADDSAT),
/* 97361*/      OPC_RecordChild0, // #0 = $Rm
/* 97362*/      OPC_CheckChild1Same, 0,
/* 97364*/      OPC_MoveParent,
/* 97365*/      OPC_RecordChild1, // #1 = $Rn
/* 97366*/      OPC_CheckType, MVT::i32,
/* 97368*/      OPC_Scope, 18, /*->97388*/ // 2 children in Scope
/* 97370*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 97372*/        OPC_EmitInteger, MVT::i32, 14, 
/* 97375*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97378*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QDADD), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (saddsat:{ *:[i32] } (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rm), rGPR:{ *:[i32] }:$Rn) - Complexity = 6
                  // Dst: (QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 97388*/      /*Scope*/ 18, /*->97407*/
/* 97389*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 97391*/        OPC_EmitInteger, MVT::i32, 14, 
/* 97394*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97397*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QDADD), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (saddsat:{ *:[i32] } (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rm), rGPR:{ *:[i32] }:$Rn) - Complexity = 6
                  // Dst: (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 97407*/      0, /*End of Scope*/
/* 97408*/    /*Scope*/ 89|128,2/*345*/, /*->97755*/
/* 97410*/      OPC_RecordChild0, // #0 = $Rn
/* 97411*/      OPC_Scope, 50, /*->97463*/ // 3 children in Scope
/* 97413*/        OPC_MoveChild1,
/* 97414*/        OPC_CheckOpcode, TARGET_VAL(ISD::SADDSAT),
/* 97417*/        OPC_RecordChild0, // #1 = $Rm
/* 97418*/        OPC_CheckChild1Same, 1,
/* 97420*/        OPC_MoveParent,
/* 97421*/        OPC_CheckType, MVT::i32,
/* 97423*/        OPC_Scope, 18, /*->97443*/ // 2 children in Scope
/* 97425*/          OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 97427*/          OPC_EmitInteger, MVT::i32, 14, 
/* 97430*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97433*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::QDADD), 0,
                        MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 97443*/        /*Scope*/ 18, /*->97462*/
/* 97444*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 97446*/          OPC_EmitInteger, MVT::i32, 14, 
/* 97449*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97452*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QDADD), 0,
                        MVT::i32, 4/*#Ops*/, 1, 0, 2, 3, 
                    // Src: (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rm)) - Complexity = 6
                    // Dst: (t2QDADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 97462*/        0, /*End of Scope*/
/* 97463*/      /*Scope*/ 43, /*->97507*/
/* 97464*/        OPC_RecordChild1, // #1 = $b
/* 97465*/        OPC_CheckType, MVT::i32,
/* 97467*/        OPC_Scope, 18, /*->97487*/ // 2 children in Scope
/* 97469*/          OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 97471*/          OPC_EmitInteger, MVT::i32, 14, 
/* 97474*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97477*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::QADD), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (saddsat:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) - Complexity = 3
                    // Dst: (QADD:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 97487*/        /*Scope*/ 18, /*->97506*/
/* 97488*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 97490*/          OPC_EmitInteger, MVT::i32, 14, 
/* 97493*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97496*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QADD), 0,
                        MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) - Complexity = 3
                    // Dst: (t2QADD:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 97506*/        0, /*End of Scope*/
/* 97507*/      /*Scope*/ 117|128,1/*245*/, /*->97754*/
/* 97509*/        OPC_MoveChild1,
/* 97510*/        OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 97513*/        OPC_Scope, 14|128,1/*142*/, /*->97658*/ // 2 children in Scope
/* 97516*/          OPC_CheckChild0Integer, 64|128,13/*1728*/, 
/* 97519*/          OPC_Scope, 91, /*->97612*/ // 2 children in Scope
/* 97521*/            OPC_RecordChild1, // #1 = $Vn
/* 97522*/            OPC_Scope, 43, /*->97567*/ // 2 children in Scope
/* 97524*/              OPC_CheckChild1Type, MVT::v4i16,
/* 97526*/              OPC_MoveChild2,
/* 97527*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 97530*/              OPC_RecordChild0, // #2 = $Vm
/* 97531*/              OPC_CheckChild0Type, MVT::v4i16,
/* 97533*/              OPC_RecordChild1, // #3 = $lane
/* 97534*/              OPC_MoveChild1,
/* 97535*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97538*/              OPC_MoveParent,
/* 97539*/              OPC_CheckType, MVT::v4i16,
/* 97541*/              OPC_MoveParent,
/* 97542*/              OPC_MoveParent,
/* 97543*/              OPC_CheckType, MVT::v4i16,
/* 97545*/              OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 97547*/              OPC_EmitConvertToTarget, 3,
/* 97549*/              OPC_EmitInteger, MVT::i32, 14, 
/* 97552*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97555*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i16), 0,
                            MVT::v4i16, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                        // Src: (saddsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1728:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 17
                        // Dst: (VQRDMLAHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 97567*/            /*Scope*/ 43, /*->97611*/
/* 97568*/              OPC_CheckChild1Type, MVT::v2i32,
/* 97570*/              OPC_MoveChild2,
/* 97571*/              OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 97574*/              OPC_RecordChild0, // #2 = $Vm
/* 97575*/              OPC_CheckChild0Type, MVT::v2i32,
/* 97577*/              OPC_RecordChild1, // #3 = $lane
/* 97578*/              OPC_MoveChild1,
/* 97579*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97582*/              OPC_MoveParent,
/* 97583*/              OPC_CheckType, MVT::v2i32,
/* 97585*/              OPC_MoveParent,
/* 97586*/              OPC_MoveParent,
/* 97587*/              OPC_CheckType, MVT::v2i32,
/* 97589*/              OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 97591*/              OPC_EmitConvertToTarget, 3,
/* 97593*/              OPC_EmitInteger, MVT::i32, 14, 
/* 97596*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97599*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv2i32), 0,
                            MVT::v2i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                        // Src: (saddsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1728:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 17
                        // Dst: (VQRDMLAHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 97611*/            0, /*End of Scope*/
/* 97612*/          /*Scope*/ 44, /*->97657*/
/* 97613*/            OPC_MoveChild1,
/* 97614*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 97617*/            OPC_RecordChild0, // #1 = $Vm
/* 97618*/            OPC_CheckChild0Type, MVT::v4i16,
/* 97620*/            OPC_RecordChild1, // #2 = $lane
/* 97621*/            OPC_MoveChild1,
/* 97622*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97625*/            OPC_MoveParent,
/* 97626*/            OPC_CheckType, MVT::v4i16,
/* 97628*/            OPC_MoveParent,
/* 97629*/            OPC_RecordChild2, // #3 = $Vn
/* 97630*/            OPC_CheckChild2Type, MVT::v4i16,
/* 97632*/            OPC_MoveParent,
/* 97633*/            OPC_CheckType, MVT::v4i16,
/* 97635*/            OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 97637*/            OPC_EmitConvertToTarget, 2,
/* 97639*/            OPC_EmitInteger, MVT::i32, 14, 
/* 97642*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97645*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i16), 0,
                          MVT::v4i16, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                      // Src: (saddsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn)) - Complexity = 17
                      // Dst: (VQRDMLAHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 97657*/          0, /*End of Scope*/
/* 97658*/        /*Scope*/ 94, /*->97753*/
/* 97659*/          OPC_CheckChild0Integer, 59|128,13/*1723*/, 
/* 97662*/          OPC_RecordChild1, // #1 = $Vn
/* 97663*/          OPC_Scope, 43, /*->97708*/ // 2 children in Scope
/* 97665*/            OPC_CheckChild1Type, MVT::v4i16,
/* 97667*/            OPC_MoveChild2,
/* 97668*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 97671*/            OPC_RecordChild0, // #2 = $Vm
/* 97672*/            OPC_CheckChild0Type, MVT::v4i16,
/* 97674*/            OPC_RecordChild1, // #3 = $lane
/* 97675*/            OPC_MoveChild1,
/* 97676*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97679*/            OPC_MoveParent,
/* 97680*/            OPC_CheckType, MVT::v4i16,
/* 97682*/            OPC_MoveParent,
/* 97683*/            OPC_MoveParent,
/* 97684*/            OPC_CheckType, MVT::v4i32,
/* 97686*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 97688*/            OPC_EmitConvertToTarget, 3,
/* 97690*/            OPC_EmitInteger, MVT::i32, 14, 
/* 97693*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97696*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv4i16), 0,
                          MVT::v4i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (saddsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1723:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 17
                      // Dst: (VQDMLALslv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 97708*/          /*Scope*/ 43, /*->97752*/
/* 97709*/            OPC_CheckChild1Type, MVT::v2i32,
/* 97711*/            OPC_MoveChild2,
/* 97712*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 97715*/            OPC_RecordChild0, // #2 = $Vm
/* 97716*/            OPC_CheckChild0Type, MVT::v2i32,
/* 97718*/            OPC_RecordChild1, // #3 = $lane
/* 97719*/            OPC_MoveChild1,
/* 97720*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97723*/            OPC_MoveParent,
/* 97724*/            OPC_CheckType, MVT::v2i32,
/* 97726*/            OPC_MoveParent,
/* 97727*/            OPC_MoveParent,
/* 97728*/            OPC_CheckType, MVT::v2i64,
/* 97730*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 97732*/            OPC_EmitConvertToTarget, 3,
/* 97734*/            OPC_EmitInteger, MVT::i32, 14, 
/* 97737*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97740*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv2i32), 0,
                          MVT::v2i64, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (saddsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 1723:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 17
                      // Dst: (VQDMLALslv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 97752*/          0, /*End of Scope*/
/* 97753*/        0, /*End of Scope*/
/* 97754*/      0, /*End of Scope*/
/* 97755*/    /*Scope*/ 101, /*->97857*/
/* 97756*/      OPC_MoveChild0,
/* 97757*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 97760*/      OPC_CheckChild0Integer, 64|128,13/*1728*/, 
/* 97763*/      OPC_Scope, 45, /*->97810*/ // 2 children in Scope
/* 97765*/        OPC_RecordChild1, // #0 = $Vn
/* 97766*/        OPC_CheckChild1Type, MVT::v4i16,
/* 97768*/        OPC_MoveChild2,
/* 97769*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 97772*/        OPC_RecordChild0, // #1 = $Vm
/* 97773*/        OPC_CheckChild0Type, MVT::v4i16,
/* 97775*/        OPC_RecordChild1, // #2 = $lane
/* 97776*/        OPC_MoveChild1,
/* 97777*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97780*/        OPC_MoveParent,
/* 97781*/        OPC_CheckType, MVT::v4i16,
/* 97783*/        OPC_MoveParent,
/* 97784*/        OPC_MoveParent,
/* 97785*/        OPC_RecordChild1, // #3 = $src1
/* 97786*/        OPC_CheckType, MVT::v4i16,
/* 97788*/        OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 97790*/        OPC_EmitConvertToTarget, 2,
/* 97792*/        OPC_EmitInteger, MVT::i32, 14, 
/* 97795*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97798*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i16), 0,
                      MVT::v4i16, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                  // Src: (saddsat:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 1728:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)), DPR:{ *:[v4i16] }:$src1) - Complexity = 17
                  // Dst: (VQRDMLAHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 97810*/      /*Scope*/ 45, /*->97856*/
/* 97811*/        OPC_MoveChild1,
/* 97812*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 97815*/        OPC_RecordChild0, // #0 = $Vm
/* 97816*/        OPC_CheckChild0Type, MVT::v4i16,
/* 97818*/        OPC_RecordChild1, // #1 = $lane
/* 97819*/        OPC_MoveChild1,
/* 97820*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97823*/        OPC_MoveParent,
/* 97824*/        OPC_CheckType, MVT::v4i16,
/* 97826*/        OPC_MoveParent,
/* 97827*/        OPC_RecordChild2, // #2 = $Vn
/* 97828*/        OPC_CheckChild2Type, MVT::v4i16,
/* 97830*/        OPC_MoveParent,
/* 97831*/        OPC_RecordChild1, // #3 = $src1
/* 97832*/        OPC_CheckType, MVT::v4i16,
/* 97834*/        OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 97836*/        OPC_EmitConvertToTarget, 1,
/* 97838*/        OPC_EmitInteger, MVT::i32, 14, 
/* 97841*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97844*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i16), 0,
                      MVT::v4i16, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (saddsat:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn), DPR:{ *:[v4i16] }:$src1) - Complexity = 17
                  // Dst: (VQRDMLAHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 97856*/      0, /*End of Scope*/
/* 97857*/    /*Scope*/ 52, /*->97910*/
/* 97858*/      OPC_RecordChild0, // #0 = $src1
/* 97859*/      OPC_MoveChild1,
/* 97860*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 97863*/      OPC_CheckChild0Integer, 64|128,13/*1728*/, 
/* 97866*/      OPC_MoveChild1,
/* 97867*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 97870*/      OPC_RecordChild0, // #1 = $Vm
/* 97871*/      OPC_CheckChild0Type, MVT::v2i32,
/* 97873*/      OPC_RecordChild1, // #2 = $lane
/* 97874*/      OPC_MoveChild1,
/* 97875*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97878*/      OPC_MoveParent,
/* 97879*/      OPC_CheckType, MVT::v2i32,
/* 97881*/      OPC_MoveParent,
/* 97882*/      OPC_RecordChild2, // #3 = $Vn
/* 97883*/      OPC_CheckChild2Type, MVT::v2i32,
/* 97885*/      OPC_MoveParent,
/* 97886*/      OPC_CheckType, MVT::v2i32,
/* 97888*/      OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 97890*/      OPC_EmitConvertToTarget, 2,
/* 97892*/      OPC_EmitInteger, MVT::i32, 14, 
/* 97895*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97898*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv2i32), 0,
                    MVT::v2i32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                // Src: (saddsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn)) - Complexity = 17
                // Dst: (VQRDMLAHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 97910*/    /*Scope*/ 101, /*->98012*/
/* 97911*/      OPC_MoveChild0,
/* 97912*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 97915*/      OPC_CheckChild0Integer, 64|128,13/*1728*/, 
/* 97918*/      OPC_Scope, 45, /*->97965*/ // 2 children in Scope
/* 97920*/        OPC_RecordChild1, // #0 = $Vn
/* 97921*/        OPC_CheckChild1Type, MVT::v2i32,
/* 97923*/        OPC_MoveChild2,
/* 97924*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 97927*/        OPC_RecordChild0, // #1 = $Vm
/* 97928*/        OPC_CheckChild0Type, MVT::v2i32,
/* 97930*/        OPC_RecordChild1, // #2 = $lane
/* 97931*/        OPC_MoveChild1,
/* 97932*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97935*/        OPC_MoveParent,
/* 97936*/        OPC_CheckType, MVT::v2i32,
/* 97938*/        OPC_MoveParent,
/* 97939*/        OPC_MoveParent,
/* 97940*/        OPC_RecordChild1, // #3 = $src1
/* 97941*/        OPC_CheckType, MVT::v2i32,
/* 97943*/        OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 97945*/        OPC_EmitConvertToTarget, 2,
/* 97947*/        OPC_EmitInteger, MVT::i32, 14, 
/* 97950*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97953*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv2i32), 0,
                      MVT::v2i32, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                  // Src: (saddsat:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 1728:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)), DPR:{ *:[v2i32] }:$src1) - Complexity = 17
                  // Dst: (VQRDMLAHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 97965*/      /*Scope*/ 45, /*->98011*/
/* 97966*/        OPC_MoveChild1,
/* 97967*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 97970*/        OPC_RecordChild0, // #0 = $Vm
/* 97971*/        OPC_CheckChild0Type, MVT::v2i32,
/* 97973*/        OPC_RecordChild1, // #1 = $lane
/* 97974*/        OPC_MoveChild1,
/* 97975*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97978*/        OPC_MoveParent,
/* 97979*/        OPC_CheckType, MVT::v2i32,
/* 97981*/        OPC_MoveParent,
/* 97982*/        OPC_RecordChild2, // #2 = $Vn
/* 97983*/        OPC_CheckChild2Type, MVT::v2i32,
/* 97985*/        OPC_MoveParent,
/* 97986*/        OPC_RecordChild1, // #3 = $src1
/* 97987*/        OPC_CheckType, MVT::v2i32,
/* 97989*/        OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 97991*/        OPC_EmitConvertToTarget, 1,
/* 97993*/        OPC_EmitInteger, MVT::i32, 14, 
/* 97996*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 97999*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv2i32), 0,
                      MVT::v2i32, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (saddsat:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn), DPR:{ *:[v2i32] }:$src1) - Complexity = 17
                  // Dst: (VQRDMLAHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 98011*/      0, /*End of Scope*/
/* 98012*/    /*Scope*/ 52, /*->98065*/
/* 98013*/      OPC_RecordChild0, // #0 = $src1
/* 98014*/      OPC_MoveChild1,
/* 98015*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 98018*/      OPC_CheckChild0Integer, 59|128,13/*1723*/, 
/* 98021*/      OPC_MoveChild1,
/* 98022*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 98025*/      OPC_RecordChild0, // #1 = $Vm
/* 98026*/      OPC_CheckChild0Type, MVT::v4i16,
/* 98028*/      OPC_RecordChild1, // #2 = $lane
/* 98029*/      OPC_MoveChild1,
/* 98030*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 98033*/      OPC_MoveParent,
/* 98034*/      OPC_CheckType, MVT::v4i16,
/* 98036*/      OPC_MoveParent,
/* 98037*/      OPC_RecordChild2, // #3 = $Vn
/* 98038*/      OPC_CheckChild2Type, MVT::v4i16,
/* 98040*/      OPC_MoveParent,
/* 98041*/      OPC_CheckType, MVT::v4i32,
/* 98043*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 98045*/      OPC_EmitConvertToTarget, 2,
/* 98047*/      OPC_EmitInteger, MVT::i32, 14, 
/* 98050*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98053*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv4i16), 0,
                    MVT::v4i32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                // Src: (saddsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1723:{ *:[iPTR] }, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn)) - Complexity = 17
                // Dst: (VQDMLALslv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 98065*/    /*Scope*/ 101, /*->98167*/
/* 98066*/      OPC_MoveChild0,
/* 98067*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 98070*/      OPC_CheckChild0Integer, 59|128,13/*1723*/, 
/* 98073*/      OPC_Scope, 45, /*->98120*/ // 2 children in Scope
/* 98075*/        OPC_RecordChild1, // #0 = $Vn
/* 98076*/        OPC_CheckChild1Type, MVT::v4i16,
/* 98078*/        OPC_MoveChild2,
/* 98079*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 98082*/        OPC_RecordChild0, // #1 = $Vm
/* 98083*/        OPC_CheckChild0Type, MVT::v4i16,
/* 98085*/        OPC_RecordChild1, // #2 = $lane
/* 98086*/        OPC_MoveChild1,
/* 98087*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 98090*/        OPC_MoveParent,
/* 98091*/        OPC_CheckType, MVT::v4i16,
/* 98093*/        OPC_MoveParent,
/* 98094*/        OPC_MoveParent,
/* 98095*/        OPC_RecordChild1, // #3 = $src1
/* 98096*/        OPC_CheckType, MVT::v4i32,
/* 98098*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 98100*/        OPC_EmitConvertToTarget, 2,
/* 98102*/        OPC_EmitInteger, MVT::i32, 14, 
/* 98105*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98108*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv4i16), 0,
                      MVT::v4i32, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                  // Src: (saddsat:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 1723:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v4i32] }:$src1) - Complexity = 17
                  // Dst: (VQDMLALslv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 98120*/      /*Scope*/ 45, /*->98166*/
/* 98121*/        OPC_MoveChild1,
/* 98122*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 98125*/        OPC_RecordChild0, // #0 = $Vm
/* 98126*/        OPC_CheckChild0Type, MVT::v4i16,
/* 98128*/        OPC_RecordChild1, // #1 = $lane
/* 98129*/        OPC_MoveChild1,
/* 98130*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 98133*/        OPC_MoveParent,
/* 98134*/        OPC_CheckType, MVT::v4i16,
/* 98136*/        OPC_MoveParent,
/* 98137*/        OPC_RecordChild2, // #2 = $Vn
/* 98138*/        OPC_CheckChild2Type, MVT::v4i16,
/* 98140*/        OPC_MoveParent,
/* 98141*/        OPC_RecordChild1, // #3 = $src1
/* 98142*/        OPC_CheckType, MVT::v4i32,
/* 98144*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 98146*/        OPC_EmitConvertToTarget, 1,
/* 98148*/        OPC_EmitInteger, MVT::i32, 14, 
/* 98151*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98154*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv4i16), 0,
                      MVT::v4i32, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (saddsat:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 1723:{ *:[iPTR] }, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn), QPR:{ *:[v4i32] }:$src1) - Complexity = 17
                  // Dst: (VQDMLALslv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 98166*/      0, /*End of Scope*/
/* 98167*/    /*Scope*/ 52, /*->98220*/
/* 98168*/      OPC_RecordChild0, // #0 = $src1
/* 98169*/      OPC_MoveChild1,
/* 98170*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 98173*/      OPC_CheckChild0Integer, 59|128,13/*1723*/, 
/* 98176*/      OPC_MoveChild1,
/* 98177*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 98180*/      OPC_RecordChild0, // #1 = $Vm
/* 98181*/      OPC_CheckChild0Type, MVT::v2i32,
/* 98183*/      OPC_RecordChild1, // #2 = $lane
/* 98184*/      OPC_MoveChild1,
/* 98185*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 98188*/      OPC_MoveParent,
/* 98189*/      OPC_CheckType, MVT::v2i32,
/* 98191*/      OPC_MoveParent,
/* 98192*/      OPC_RecordChild2, // #3 = $Vn
/* 98193*/      OPC_CheckChild2Type, MVT::v2i32,
/* 98195*/      OPC_MoveParent,
/* 98196*/      OPC_CheckType, MVT::v2i64,
/* 98198*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 98200*/      OPC_EmitConvertToTarget, 2,
/* 98202*/      OPC_EmitInteger, MVT::i32, 14, 
/* 98205*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98208*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv2i32), 0,
                    MVT::v2i64, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                // Src: (saddsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 1723:{ *:[iPTR] }, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn)) - Complexity = 17
                // Dst: (VQDMLALslv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 98220*/    /*Scope*/ 101, /*->98322*/
/* 98221*/      OPC_MoveChild0,
/* 98222*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 98225*/      OPC_CheckChild0Integer, 59|128,13/*1723*/, 
/* 98228*/      OPC_Scope, 45, /*->98275*/ // 2 children in Scope
/* 98230*/        OPC_RecordChild1, // #0 = $Vn
/* 98231*/        OPC_CheckChild1Type, MVT::v2i32,
/* 98233*/        OPC_MoveChild2,
/* 98234*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 98237*/        OPC_RecordChild0, // #1 = $Vm
/* 98238*/        OPC_CheckChild0Type, MVT::v2i32,
/* 98240*/        OPC_RecordChild1, // #2 = $lane
/* 98241*/        OPC_MoveChild1,
/* 98242*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 98245*/        OPC_MoveParent,
/* 98246*/        OPC_CheckType, MVT::v2i32,
/* 98248*/        OPC_MoveParent,
/* 98249*/        OPC_MoveParent,
/* 98250*/        OPC_RecordChild1, // #3 = $src1
/* 98251*/        OPC_CheckType, MVT::v2i64,
/* 98253*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 98255*/        OPC_EmitConvertToTarget, 2,
/* 98257*/        OPC_EmitInteger, MVT::i32, 14, 
/* 98260*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98263*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv2i32), 0,
                      MVT::v2i64, 6/*#Ops*/, 3, 0, 1, 4, 5, 6, 
                  // Src: (saddsat:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 1723:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v2i64] }:$src1) - Complexity = 17
                  // Dst: (VQDMLALslv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 98275*/      /*Scope*/ 45, /*->98321*/
/* 98276*/        OPC_MoveChild1,
/* 98277*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 98280*/        OPC_RecordChild0, // #0 = $Vm
/* 98281*/        OPC_CheckChild0Type, MVT::v2i32,
/* 98283*/        OPC_RecordChild1, // #1 = $lane
/* 98284*/        OPC_MoveChild1,
/* 98285*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 98288*/        OPC_MoveParent,
/* 98289*/        OPC_CheckType, MVT::v2i32,
/* 98291*/        OPC_MoveParent,
/* 98292*/        OPC_RecordChild2, // #2 = $Vn
/* 98293*/        OPC_CheckChild2Type, MVT::v2i32,
/* 98295*/        OPC_MoveParent,
/* 98296*/        OPC_RecordChild1, // #3 = $src1
/* 98297*/        OPC_CheckType, MVT::v2i64,
/* 98299*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 98301*/        OPC_EmitConvertToTarget, 1,
/* 98303*/        OPC_EmitInteger, MVT::i32, 14, 
/* 98306*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98309*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALslv2i32), 0,
                      MVT::v2i64, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (saddsat:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 1723:{ *:[iPTR] }, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn), QPR:{ *:[v2i64] }:$src1) - Complexity = 17
                  // Dst: (VQDMLALslv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 98321*/      0, /*End of Scope*/
/* 98322*/    /*Scope*/ 67|128,1/*195*/, /*->98519*/
/* 98324*/      OPC_RecordChild0, // #0 = $src1
/* 98325*/      OPC_MoveChild1,
/* 98326*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 98329*/      OPC_CheckChild0Integer, 64|128,13/*1728*/, 
/* 98332*/      OPC_Scope, 123, /*->98457*/ // 2 children in Scope
/* 98334*/        OPC_RecordChild1, // #1 = $src2
/* 98335*/        OPC_Scope, 59, /*->98396*/ // 2 children in Scope
/* 98337*/          OPC_CheckChild1Type, MVT::v8i16,
/* 98339*/          OPC_MoveChild2,
/* 98340*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 98343*/          OPC_RecordChild0, // #2 = $src3
/* 98344*/          OPC_CheckChild0Type, MVT::v8i16,
/* 98346*/          OPC_RecordChild1, // #3 = $lane
/* 98347*/          OPC_MoveChild1,
/* 98348*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 98351*/          OPC_MoveParent,
/* 98352*/          OPC_CheckType, MVT::v8i16,
/* 98354*/          OPC_MoveParent,
/* 98355*/          OPC_MoveParent,
/* 98356*/          OPC_CheckType, MVT::v8i16,
/* 98358*/          OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 98360*/          OPC_EmitConvertToTarget, 3,
/* 98362*/          OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 98365*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 2, 5,  // Results = #6
/* 98373*/          OPC_EmitConvertToTarget, 3,
/* 98375*/          OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 98378*/          OPC_EmitInteger, MVT::i32, 14, 
/* 98381*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98384*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv8i16), 0,
                        MVT::v8i16, 6/*#Ops*/, 0, 1, 6, 8, 9, 10, 
                    // Src: (saddsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1728:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src2, (ARMvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane))) - Complexity = 17
                    // 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))
/* 98396*/        /*Scope*/ 59, /*->98456*/
/* 98397*/          OPC_CheckChild1Type, MVT::v4i32,
/* 98399*/          OPC_MoveChild2,
/* 98400*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 98403*/          OPC_RecordChild0, // #2 = $src3
/* 98404*/          OPC_CheckChild0Type, MVT::v4i32,
/* 98406*/          OPC_RecordChild1, // #3 = $lane
/* 98407*/          OPC_MoveChild1,
/* 98408*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 98411*/          OPC_MoveParent,
/* 98412*/          OPC_CheckType, MVT::v4i32,
/* 98414*/          OPC_MoveParent,
/* 98415*/          OPC_MoveParent,
/* 98416*/          OPC_CheckType, MVT::v4i32,
/* 98418*/          OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 98420*/          OPC_EmitConvertToTarget, 3,
/* 98422*/          OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 98425*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i32, 2/*#Ops*/, 2, 5,  // Results = #6
/* 98433*/          OPC_EmitConvertToTarget, 3,
/* 98435*/          OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 98438*/          OPC_EmitInteger, MVT::i32, 14, 
/* 98441*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98444*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i32), 0,
                        MVT::v4i32, 6/*#Ops*/, 0, 1, 6, 8, 9, 10, 
                    // Src: (saddsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1728:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src2, (ARMvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane))) - Complexity = 17
                    // 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))
/* 98456*/        0, /*End of Scope*/
/* 98457*/      /*Scope*/ 60, /*->98518*/
/* 98458*/        OPC_MoveChild1,
/* 98459*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 98462*/        OPC_RecordChild0, // #1 = $src3
/* 98463*/        OPC_CheckChild0Type, MVT::v8i16,
/* 98465*/        OPC_RecordChild1, // #2 = $lane
/* 98466*/        OPC_MoveChild1,
/* 98467*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 98470*/        OPC_MoveParent,
/* 98471*/        OPC_CheckType, MVT::v8i16,
/* 98473*/        OPC_MoveParent,
/* 98474*/        OPC_RecordChild2, // #3 = $src2
/* 98475*/        OPC_CheckChild2Type, MVT::v8i16,
/* 98477*/        OPC_MoveParent,
/* 98478*/        OPC_CheckType, MVT::v8i16,
/* 98480*/        OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 98482*/        OPC_EmitConvertToTarget, 2,
/* 98484*/        OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 98487*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 1, 5,  // Results = #6
/* 98495*/        OPC_EmitConvertToTarget, 2,
/* 98497*/        OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 98500*/        OPC_EmitInteger, MVT::i32, 14, 
/* 98503*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98506*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv8i16), 0,
                      MVT::v8i16, 6/*#Ops*/, 0, 3, 6, 8, 9, 10, 
                  // Src: (saddsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$src2)) - Complexity = 17
                  // 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))
/* 98518*/      0, /*End of Scope*/
/* 98519*/    /*Scope*/ 5|128,1/*133*/, /*->98654*/
/* 98521*/      OPC_MoveChild0,
/* 98522*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 98525*/      OPC_CheckChild0Integer, 64|128,13/*1728*/, 
/* 98528*/      OPC_Scope, 61, /*->98591*/ // 2 children in Scope
/* 98530*/        OPC_RecordChild1, // #0 = $src2
/* 98531*/        OPC_CheckChild1Type, MVT::v8i16,
/* 98533*/        OPC_MoveChild2,
/* 98534*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 98537*/        OPC_RecordChild0, // #1 = $src3
/* 98538*/        OPC_CheckChild0Type, MVT::v8i16,
/* 98540*/        OPC_RecordChild1, // #2 = $lane
/* 98541*/        OPC_MoveChild1,
/* 98542*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 98545*/        OPC_MoveParent,
/* 98546*/        OPC_CheckType, MVT::v8i16,
/* 98548*/        OPC_MoveParent,
/* 98549*/        OPC_MoveParent,
/* 98550*/        OPC_RecordChild1, // #3 = $src1
/* 98551*/        OPC_CheckType, MVT::v8i16,
/* 98553*/        OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 98555*/        OPC_EmitConvertToTarget, 2,
/* 98557*/        OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 98560*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 1, 5,  // Results = #6
/* 98568*/        OPC_EmitConvertToTarget, 2,
/* 98570*/        OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 98573*/        OPC_EmitInteger, MVT::i32, 14, 
/* 98576*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98579*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv8i16), 0,
                      MVT::v8i16, 6/*#Ops*/, 3, 0, 6, 8, 9, 10, 
                  // Src: (saddsat:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 1728:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src2, (ARMvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v8i16] }:$src1) - Complexity = 17
                  // 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))
/* 98591*/      /*Scope*/ 61, /*->98653*/
/* 98592*/        OPC_MoveChild1,
/* 98593*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 98596*/        OPC_RecordChild0, // #0 = $src3
/* 98597*/        OPC_CheckChild0Type, MVT::v8i16,
/* 98599*/        OPC_RecordChild1, // #1 = $lane
/* 98600*/        OPC_MoveChild1,
/* 98601*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 98604*/        OPC_MoveParent,
/* 98605*/        OPC_CheckType, MVT::v8i16,
/* 98607*/        OPC_MoveParent,
/* 98608*/        OPC_RecordChild2, // #2 = $src2
/* 98609*/        OPC_CheckChild2Type, MVT::v8i16,
/* 98611*/        OPC_MoveParent,
/* 98612*/        OPC_RecordChild1, // #3 = $src1
/* 98613*/        OPC_CheckType, MVT::v8i16,
/* 98615*/        OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 98617*/        OPC_EmitConvertToTarget, 1,
/* 98619*/        OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 98622*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 5,  // Results = #6
/* 98630*/        OPC_EmitConvertToTarget, 1,
/* 98632*/        OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 98635*/        OPC_EmitInteger, MVT::i32, 14, 
/* 98638*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98641*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv8i16), 0,
                      MVT::v8i16, 6/*#Ops*/, 3, 2, 6, 8, 9, 10, 
                  // Src: (saddsat:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$src2), QPR:{ *:[v8i16] }:$src1) - Complexity = 17
                  // 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))
/* 98653*/      0, /*End of Scope*/
/* 98654*/    /*Scope*/ 68, /*->98723*/
/* 98655*/      OPC_RecordChild0, // #0 = $src1
/* 98656*/      OPC_MoveChild1,
/* 98657*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 98660*/      OPC_CheckChild0Integer, 64|128,13/*1728*/, 
/* 98663*/      OPC_MoveChild1,
/* 98664*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 98667*/      OPC_RecordChild0, // #1 = $src3
/* 98668*/      OPC_CheckChild0Type, MVT::v4i32,
/* 98670*/      OPC_RecordChild1, // #2 = $lane
/* 98671*/      OPC_MoveChild1,
/* 98672*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 98675*/      OPC_MoveParent,
/* 98676*/      OPC_CheckType, MVT::v4i32,
/* 98678*/      OPC_MoveParent,
/* 98679*/      OPC_RecordChild2, // #3 = $src2
/* 98680*/      OPC_CheckChild2Type, MVT::v4i32,
/* 98682*/      OPC_MoveParent,
/* 98683*/      OPC_CheckType, MVT::v4i32,
/* 98685*/      OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 98687*/      OPC_EmitConvertToTarget, 2,
/* 98689*/      OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 98692*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v2i32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 98700*/      OPC_EmitConvertToTarget, 2,
/* 98702*/      OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 98705*/      OPC_EmitInteger, MVT::i32, 14, 
/* 98708*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98711*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i32), 0,
                    MVT::v4i32, 6/*#Ops*/, 0, 3, 6, 8, 9, 10, 
                // Src: (saddsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$src2)) - Complexity = 17
                // 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))
/* 98723*/    /*Scope*/ 5|128,1/*133*/, /*->98858*/
/* 98725*/      OPC_MoveChild0,
/* 98726*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 98729*/      OPC_CheckChild0Integer, 64|128,13/*1728*/, 
/* 98732*/      OPC_Scope, 61, /*->98795*/ // 2 children in Scope
/* 98734*/        OPC_RecordChild1, // #0 = $src2
/* 98735*/        OPC_CheckChild1Type, MVT::v4i32,
/* 98737*/        OPC_MoveChild2,
/* 98738*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 98741*/        OPC_RecordChild0, // #1 = $src3
/* 98742*/        OPC_CheckChild0Type, MVT::v4i32,
/* 98744*/        OPC_RecordChild1, // #2 = $lane
/* 98745*/        OPC_MoveChild1,
/* 98746*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 98749*/        OPC_MoveParent,
/* 98750*/        OPC_CheckType, MVT::v4i32,
/* 98752*/        OPC_MoveParent,
/* 98753*/        OPC_MoveParent,
/* 98754*/        OPC_RecordChild1, // #3 = $src1
/* 98755*/        OPC_CheckType, MVT::v4i32,
/* 98757*/        OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 98759*/        OPC_EmitConvertToTarget, 2,
/* 98761*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 98764*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 98772*/        OPC_EmitConvertToTarget, 2,
/* 98774*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 98777*/        OPC_EmitInteger, MVT::i32, 14, 
/* 98780*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98783*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i32), 0,
                      MVT::v4i32, 6/*#Ops*/, 3, 0, 6, 8, 9, 10, 
                  // Src: (saddsat:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 1728:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src2, (ARMvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane)), QPR:{ *:[v4i32] }:$src1) - Complexity = 17
                  // 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))
/* 98795*/      /*Scope*/ 61, /*->98857*/
/* 98796*/        OPC_MoveChild1,
/* 98797*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 98800*/        OPC_RecordChild0, // #0 = $src3
/* 98801*/        OPC_CheckChild0Type, MVT::v4i32,
/* 98803*/        OPC_RecordChild1, // #1 = $lane
/* 98804*/        OPC_MoveChild1,
/* 98805*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 98808*/        OPC_MoveParent,
/* 98809*/        OPC_CheckType, MVT::v4i32,
/* 98811*/        OPC_MoveParent,
/* 98812*/        OPC_RecordChild2, // #2 = $src2
/* 98813*/        OPC_CheckChild2Type, MVT::v4i32,
/* 98815*/        OPC_MoveParent,
/* 98816*/        OPC_RecordChild1, // #3 = $src1
/* 98817*/        OPC_CheckType, MVT::v4i32,
/* 98819*/        OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 98821*/        OPC_EmitConvertToTarget, 1,
/* 98823*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 98826*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 5,  // Results = #6
/* 98834*/        OPC_EmitConvertToTarget, 1,
/* 98836*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 98839*/        OPC_EmitInteger, MVT::i32, 14, 
/* 98842*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98845*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHslv4i32), 0,
                      MVT::v4i32, 6/*#Ops*/, 3, 2, 6, 8, 9, 10, 
                  // Src: (saddsat:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$src2), QPR:{ *:[v4i32] }:$src1) - Complexity = 17
                  // 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))
/* 98857*/      0, /*End of Scope*/
/* 98858*/    /*Scope*/ 61|128,1/*189*/, /*->99049*/
/* 98860*/      OPC_RecordChild0, // #0 = $src1
/* 98861*/      OPC_MoveChild1,
/* 98862*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 98865*/      OPC_Scope, 118, /*->98985*/ // 2 children in Scope
/* 98867*/        OPC_CheckChild0Integer, 64|128,13/*1728*/, 
/* 98870*/        OPC_RecordChild1, // #1 = $Vn
/* 98871*/        OPC_Scope, 27, /*->98900*/ // 4 children in Scope
/* 98873*/          OPC_CheckChild1Type, MVT::v4i16,
/* 98875*/          OPC_RecordChild2, // #2 = $Vm
/* 98876*/          OPC_CheckChild2Type, MVT::v4i16,
/* 98878*/          OPC_MoveParent,
/* 98879*/          OPC_CheckType, MVT::v4i16,
/* 98881*/          OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 98883*/          OPC_EmitInteger, MVT::i32, 14, 
/* 98886*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98889*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (saddsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1728:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 11
                    // Dst: (VQRDMLAHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 98900*/        /*Scope*/ 27, /*->98928*/
/* 98901*/          OPC_CheckChild1Type, MVT::v2i32,
/* 98903*/          OPC_RecordChild2, // #2 = $Vm
/* 98904*/          OPC_CheckChild2Type, MVT::v2i32,
/* 98906*/          OPC_MoveParent,
/* 98907*/          OPC_CheckType, MVT::v2i32,
/* 98909*/          OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 98911*/          OPC_EmitInteger, MVT::i32, 14, 
/* 98914*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98917*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (saddsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1728:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 11
                    // Dst: (VQRDMLAHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 98928*/        /*Scope*/ 27, /*->98956*/
/* 98929*/          OPC_CheckChild1Type, MVT::v8i16,
/* 98931*/          OPC_RecordChild2, // #2 = $Vm
/* 98932*/          OPC_CheckChild2Type, MVT::v8i16,
/* 98934*/          OPC_MoveParent,
/* 98935*/          OPC_CheckType, MVT::v8i16,
/* 98937*/          OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 98939*/          OPC_EmitInteger, MVT::i32, 14, 
/* 98942*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98945*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (saddsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1728:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) - Complexity = 11
                    // Dst: (VQRDMLAHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 98956*/        /*Scope*/ 27, /*->98984*/
/* 98957*/          OPC_CheckChild1Type, MVT::v4i32,
/* 98959*/          OPC_RecordChild2, // #2 = $Vm
/* 98960*/          OPC_CheckChild2Type, MVT::v4i32,
/* 98962*/          OPC_MoveParent,
/* 98963*/          OPC_CheckType, MVT::v4i32,
/* 98965*/          OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 98967*/          OPC_EmitInteger, MVT::i32, 14, 
/* 98970*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 98973*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (saddsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1728:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) - Complexity = 11
                    // Dst: (VQRDMLAHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 98984*/        0, /*End of Scope*/
/* 98985*/      /*Scope*/ 62, /*->99048*/
/* 98986*/        OPC_CheckChild0Integer, 59|128,13/*1723*/, 
/* 98989*/        OPC_RecordChild1, // #1 = $Vn
/* 98990*/        OPC_Scope, 27, /*->99019*/ // 2 children in Scope
/* 98992*/          OPC_CheckChild1Type, MVT::v4i16,
/* 98994*/          OPC_RecordChild2, // #2 = $Vm
/* 98995*/          OPC_CheckChild2Type, MVT::v4i16,
/* 98997*/          OPC_MoveParent,
/* 98998*/          OPC_CheckType, MVT::v4i32,
/* 99000*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 99002*/          OPC_EmitInteger, MVT::i32, 14, 
/* 99005*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99008*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (saddsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1723:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 11
                    // Dst: (VQDMLALv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 99019*/        /*Scope*/ 27, /*->99047*/
/* 99020*/          OPC_CheckChild1Type, MVT::v2i32,
/* 99022*/          OPC_RecordChild2, // #2 = $Vm
/* 99023*/          OPC_CheckChild2Type, MVT::v2i32,
/* 99025*/          OPC_MoveParent,
/* 99026*/          OPC_CheckType, MVT::v2i64,
/* 99028*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 99030*/          OPC_EmitInteger, MVT::i32, 14, 
/* 99033*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99036*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (saddsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 1723:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 11
                    // Dst: (VQDMLALv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 99047*/        0, /*End of Scope*/
/* 99048*/      0, /*End of Scope*/
/* 99049*/    /*Scope*/ 66|128,1/*194*/, /*->99245*/
/* 99051*/      OPC_MoveChild0,
/* 99052*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 99055*/      OPC_Scope, 122, /*->99179*/ // 2 children in Scope
/* 99057*/        OPC_CheckChild0Integer, 64|128,13/*1728*/, 
/* 99060*/        OPC_RecordChild1, // #0 = $Vn
/* 99061*/        OPC_Scope, 28, /*->99091*/ // 4 children in Scope
/* 99063*/          OPC_CheckChild1Type, MVT::v4i16,
/* 99065*/          OPC_RecordChild2, // #1 = $Vm
/* 99066*/          OPC_CheckChild2Type, MVT::v4i16,
/* 99068*/          OPC_MoveParent,
/* 99069*/          OPC_RecordChild1, // #2 = $src1
/* 99070*/          OPC_CheckType, MVT::v4i16,
/* 99072*/          OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 99074*/          OPC_EmitInteger, MVT::i32, 14, 
/* 99077*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99080*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv4i16), 0,
                        MVT::v4i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (saddsat:{ *:[v4i16] } (intrinsic_wo_chain:{ *:[v4i16] } 1728:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), DPR:{ *:[v4i16] }:$src1) - Complexity = 11
                    // Dst: (VQRDMLAHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 99091*/        /*Scope*/ 28, /*->99120*/
/* 99092*/          OPC_CheckChild1Type, MVT::v2i32,
/* 99094*/          OPC_RecordChild2, // #1 = $Vm
/* 99095*/          OPC_CheckChild2Type, MVT::v2i32,
/* 99097*/          OPC_MoveParent,
/* 99098*/          OPC_RecordChild1, // #2 = $src1
/* 99099*/          OPC_CheckType, MVT::v2i32,
/* 99101*/          OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 99103*/          OPC_EmitInteger, MVT::i32, 14, 
/* 99106*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99109*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv2i32), 0,
                        MVT::v2i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (saddsat:{ *:[v2i32] } (intrinsic_wo_chain:{ *:[v2i32] } 1728:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), DPR:{ *:[v2i32] }:$src1) - Complexity = 11
                    // Dst: (VQRDMLAHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 99120*/        /*Scope*/ 28, /*->99149*/
/* 99121*/          OPC_CheckChild1Type, MVT::v8i16,
/* 99123*/          OPC_RecordChild2, // #1 = $Vm
/* 99124*/          OPC_CheckChild2Type, MVT::v8i16,
/* 99126*/          OPC_MoveParent,
/* 99127*/          OPC_RecordChild1, // #2 = $src1
/* 99128*/          OPC_CheckType, MVT::v8i16,
/* 99130*/          OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 99132*/          OPC_EmitInteger, MVT::i32, 14, 
/* 99135*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99138*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv8i16), 0,
                        MVT::v8i16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (saddsat:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i16] } 1728:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), QPR:{ *:[v8i16] }:$src1) - Complexity = 11
                    // Dst: (VQRDMLAHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 99149*/        /*Scope*/ 28, /*->99178*/
/* 99150*/          OPC_CheckChild1Type, MVT::v4i32,
/* 99152*/          OPC_RecordChild2, // #1 = $Vm
/* 99153*/          OPC_CheckChild2Type, MVT::v4i32,
/* 99155*/          OPC_MoveParent,
/* 99156*/          OPC_RecordChild1, // #2 = $src1
/* 99157*/          OPC_CheckType, MVT::v4i32,
/* 99159*/          OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 99161*/          OPC_EmitInteger, MVT::i32, 14, 
/* 99164*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99167*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLAHv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (saddsat:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 1728:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), QPR:{ *:[v4i32] }:$src1) - Complexity = 11
                    // Dst: (VQRDMLAHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 99178*/        0, /*End of Scope*/
/* 99179*/      /*Scope*/ 64, /*->99244*/
/* 99180*/        OPC_CheckChild0Integer, 59|128,13/*1723*/, 
/* 99183*/        OPC_RecordChild1, // #0 = $Vn
/* 99184*/        OPC_Scope, 28, /*->99214*/ // 2 children in Scope
/* 99186*/          OPC_CheckChild1Type, MVT::v4i16,
/* 99188*/          OPC_RecordChild2, // #1 = $Vm
/* 99189*/          OPC_CheckChild2Type, MVT::v4i16,
/* 99191*/          OPC_MoveParent,
/* 99192*/          OPC_RecordChild1, // #2 = $src1
/* 99193*/          OPC_CheckType, MVT::v4i32,
/* 99195*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 99197*/          OPC_EmitInteger, MVT::i32, 14, 
/* 99200*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99203*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALv4i32), 0,
                        MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (saddsat:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i32] } 1723:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm), QPR:{ *:[v4i32] }:$src1) - Complexity = 11
                    // Dst: (VQDMLALv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 99214*/        /*Scope*/ 28, /*->99243*/
/* 99215*/          OPC_CheckChild1Type, MVT::v2i32,
/* 99217*/          OPC_RecordChild2, // #1 = $Vm
/* 99218*/          OPC_CheckChild2Type, MVT::v2i32,
/* 99220*/          OPC_MoveParent,
/* 99221*/          OPC_RecordChild1, // #2 = $src1
/* 99222*/          OPC_CheckType, MVT::v2i64,
/* 99224*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 99226*/          OPC_EmitInteger, MVT::i32, 14, 
/* 99229*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99232*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLALv2i64), 0,
                        MVT::v2i64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (saddsat:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i64] } 1723:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm), QPR:{ *:[v2i64] }:$src1) - Complexity = 11
                    // Dst: (VQDMLALv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 99243*/        0, /*End of Scope*/
/* 99244*/      0, /*End of Scope*/
/* 99245*/    /*Scope*/ 123|128,1/*251*/, /*->99498*/
/* 99247*/      OPC_RecordChild0, // #0 = $Vn
/* 99248*/      OPC_RecordChild1, // #1 = $Vm
/* 99249*/      OPC_SwitchType /*8 cases */, 18, MVT::v4i16,// ->99270
/* 99252*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 99254*/        OPC_EmitInteger, MVT::i32, 14, 
/* 99257*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99260*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (saddsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VQADDsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/* 99270*/      /*SwitchType*/ 18, MVT::v2i32,// ->99290
/* 99272*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 99274*/        OPC_EmitInteger, MVT::i32, 14, 
/* 99277*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99280*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (saddsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VQADDsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/* 99290*/      /*SwitchType*/ 47, MVT::v8i16,// ->99339
/* 99292*/        OPC_Scope, 18, /*->99312*/ // 2 children in Scope
/* 99294*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 99296*/          OPC_EmitInteger, MVT::i32, 14, 
/* 99299*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99302*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (saddsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                    // Dst: (VQADDsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/* 99312*/        /*Scope*/ 25, /*->99338*/
/* 99313*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 99315*/          OPC_EmitInteger, MVT::i32, 0, 
/* 99318*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99321*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 99327*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQADDs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (saddsat:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VQADDs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/* 99338*/        0, /*End of Scope*/
/* 99339*/      /*SwitchType*/ 47, MVT::v4i32,// ->99388
/* 99341*/        OPC_Scope, 18, /*->99361*/ // 2 children in Scope
/* 99343*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 99345*/          OPC_EmitInteger, MVT::i32, 14, 
/* 99348*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99351*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (saddsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                    // Dst: (VQADDsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/* 99361*/        /*Scope*/ 25, /*->99387*/
/* 99362*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 99364*/          OPC_EmitInteger, MVT::i32, 0, 
/* 99367*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99370*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 99376*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQADDs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (saddsat:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VQADDs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/* 99387*/        0, /*End of Scope*/
/* 99388*/      /*SwitchType*/ 18, MVT::v8i8,// ->99408
/* 99390*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 99392*/        OPC_EmitInteger, MVT::i32, 14, 
/* 99395*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99398*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (saddsat:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                  // Dst: (VQADDsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/* 99408*/      /*SwitchType*/ 47, MVT::v16i8,// ->99457
/* 99410*/        OPC_Scope, 18, /*->99430*/ // 2 children in Scope
/* 99412*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 99414*/          OPC_EmitInteger, MVT::i32, 14, 
/* 99417*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99420*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv16i8), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (saddsat:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                    // Dst: (VQADDsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/* 99430*/        /*Scope*/ 25, /*->99456*/
/* 99431*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/* 99433*/          OPC_EmitInteger, MVT::i32, 0, 
/* 99436*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99439*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/* 99445*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQADDs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (saddsat:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VQADDs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/* 99456*/        0, /*End of Scope*/
/* 99457*/      /*SwitchType*/ 18, MVT::v1i64,// ->99477
/* 99459*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 99461*/        OPC_EmitInteger, MVT::i32, 14, 
/* 99464*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99467*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (saddsat:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) - Complexity = 3
                  // Dst: (VQADDsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/* 99477*/      /*SwitchType*/ 18, MVT::v2i64,// ->99497
/* 99479*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/* 99481*/        OPC_EmitInteger, MVT::i32, 14, 
/* 99484*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99487*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDsv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (saddsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 3
                  // Dst: (VQADDsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/* 99497*/      0, // EndSwitchType
/* 99498*/    0, /*End of Scope*/
/* 99499*/  /*SwitchOpcode*/ 0|128,9/*1152*/, TARGET_VAL(ISD::SSUBSAT),// ->100655
/* 99503*/    OPC_RecordChild0, // #0 = $Rm
/* 99504*/    OPC_Scope, 50, /*->99556*/ // 4 children in Scope
/* 99506*/      OPC_MoveChild1,
/* 99507*/      OPC_CheckOpcode, TARGET_VAL(ISD::SADDSAT),
/* 99510*/      OPC_RecordChild0, // #1 = $Rn
/* 99511*/      OPC_CheckChild1Same, 1,
/* 99513*/      OPC_MoveParent,
/* 99514*/      OPC_CheckType, MVT::i32,
/* 99516*/      OPC_Scope, 18, /*->99536*/ // 2 children in Scope
/* 99518*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 99520*/        OPC_EmitInteger, MVT::i32, 14, 
/* 99523*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99526*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QDSUB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ssubsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) - Complexity = 6
                  // Dst: (QDSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 99536*/      /*Scope*/ 18, /*->99555*/
/* 99537*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 99539*/        OPC_EmitInteger, MVT::i32, 14, 
/* 99542*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99545*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QDSUB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ssubsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, (saddsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rn, rGPR:{ *:[i32] }:$Rn)) - Complexity = 6
                  // Dst: (t2QDSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 99555*/      0, /*End of Scope*/
/* 99556*/    /*Scope*/ 43, /*->99600*/
/* 99557*/      OPC_RecordChild1, // #1 = $b
/* 99558*/      OPC_CheckType, MVT::i32,
/* 99560*/      OPC_Scope, 18, /*->99580*/ // 2 children in Scope
/* 99562*/        OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/* 99564*/        OPC_EmitInteger, MVT::i32, 14, 
/* 99567*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99570*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::QSUB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ssubsat:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b) - Complexity = 3
                  // Dst: (QSUB:{ *:[i32] } GPR:{ *:[i32] }:$a, GPR:{ *:[i32] }:$b)
/* 99580*/      /*Scope*/ 18, /*->99599*/
/* 99581*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/* 99583*/        OPC_EmitInteger, MVT::i32, 14, 
/* 99586*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99589*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QSUB), 0,
                      MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ssubsat:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) - Complexity = 3
                  // Dst: (t2QSUB:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/* 99599*/      0, /*End of Scope*/
/* 99600*/    /*Scope*/ 32|128,6/*800*/, /*->100402*/
/* 99602*/      OPC_MoveChild1,
/* 99603*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/* 99606*/      OPC_Scope, 33|128,4/*545*/, /*->100154*/ // 2 children in Scope
/* 99609*/        OPC_CheckChild0Integer, 64|128,13/*1728*/, 
/* 99612*/        OPC_Scope, 91, /*->99705*/ // 5 children in Scope
/* 99614*/          OPC_RecordChild1, // #1 = $Vn
/* 99615*/          OPC_Scope, 43, /*->99660*/ // 2 children in Scope
/* 99617*/            OPC_CheckChild1Type, MVT::v4i16,
/* 99619*/            OPC_MoveChild2,
/* 99620*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 99623*/            OPC_RecordChild0, // #2 = $Vm
/* 99624*/            OPC_CheckChild0Type, MVT::v4i16,
/* 99626*/            OPC_RecordChild1, // #3 = $lane
/* 99627*/            OPC_MoveChild1,
/* 99628*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 99631*/            OPC_MoveParent,
/* 99632*/            OPC_CheckType, MVT::v4i16,
/* 99634*/            OPC_MoveParent,
/* 99635*/            OPC_MoveParent,
/* 99636*/            OPC_CheckType, MVT::v4i16,
/* 99638*/            OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 99640*/            OPC_EmitConvertToTarget, 3,
/* 99642*/            OPC_EmitInteger, MVT::i32, 14, 
/* 99645*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99648*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv4i16), 0,
                          MVT::v4i16, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (ssubsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1728:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 17
                      // Dst: (VQRDMLSHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 99660*/          /*Scope*/ 43, /*->99704*/
/* 99661*/            OPC_CheckChild1Type, MVT::v2i32,
/* 99663*/            OPC_MoveChild2,
/* 99664*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 99667*/            OPC_RecordChild0, // #2 = $Vm
/* 99668*/            OPC_CheckChild0Type, MVT::v2i32,
/* 99670*/            OPC_RecordChild1, // #3 = $lane
/* 99671*/            OPC_MoveChild1,
/* 99672*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 99675*/            OPC_MoveParent,
/* 99676*/            OPC_CheckType, MVT::v2i32,
/* 99678*/            OPC_MoveParent,
/* 99679*/            OPC_MoveParent,
/* 99680*/            OPC_CheckType, MVT::v2i32,
/* 99682*/            OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 99684*/            OPC_EmitConvertToTarget, 3,
/* 99686*/            OPC_EmitInteger, MVT::i32, 14, 
/* 99689*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99692*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv2i32), 0,
                          MVT::v2i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (ssubsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1728:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 17
                      // Dst: (VQRDMLSHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 99704*/          0, /*End of Scope*/
/* 99705*/        /*Scope*/ 87, /*->99793*/
/* 99706*/          OPC_MoveChild1,
/* 99707*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 99710*/          OPC_RecordChild0, // #1 = $Vm
/* 99711*/          OPC_Scope, 39, /*->99752*/ // 2 children in Scope
/* 99713*/            OPC_CheckChild0Type, MVT::v4i16,
/* 99715*/            OPC_RecordChild1, // #2 = $lane
/* 99716*/            OPC_MoveChild1,
/* 99717*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 99720*/            OPC_MoveParent,
/* 99721*/            OPC_CheckType, MVT::v4i16,
/* 99723*/            OPC_MoveParent,
/* 99724*/            OPC_RecordChild2, // #3 = $Vn
/* 99725*/            OPC_CheckChild2Type, MVT::v4i16,
/* 99727*/            OPC_MoveParent,
/* 99728*/            OPC_CheckType, MVT::v4i16,
/* 99730*/            OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 99732*/            OPC_EmitConvertToTarget, 2,
/* 99734*/            OPC_EmitInteger, MVT::i32, 14, 
/* 99737*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99740*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv4i16), 0,
                          MVT::v4i16, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                      // Src: (ssubsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn)) - Complexity = 17
                      // Dst: (VQRDMLSHslv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 99752*/          /*Scope*/ 39, /*->99792*/
/* 99753*/            OPC_CheckChild0Type, MVT::v2i32,
/* 99755*/            OPC_RecordChild1, // #2 = $lane
/* 99756*/            OPC_MoveChild1,
/* 99757*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 99760*/            OPC_MoveParent,
/* 99761*/            OPC_CheckType, MVT::v2i32,
/* 99763*/            OPC_MoveParent,
/* 99764*/            OPC_RecordChild2, // #3 = $Vn
/* 99765*/            OPC_CheckChild2Type, MVT::v2i32,
/* 99767*/            OPC_MoveParent,
/* 99768*/            OPC_CheckType, MVT::v2i32,
/* 99770*/            OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 99772*/            OPC_EmitConvertToTarget, 2,
/* 99774*/            OPC_EmitInteger, MVT::i32, 14, 
/* 99777*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99780*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv2i32), 0,
                          MVT::v2i32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                      // Src: (ssubsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn)) - Complexity = 17
                      // Dst: (VQRDMLSHslv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/* 99792*/          0, /*End of Scope*/
/* 99793*/        /*Scope*/ 123, /*->99917*/
/* 99794*/          OPC_RecordChild1, // #1 = $src2
/* 99795*/          OPC_Scope, 59, /*->99856*/ // 2 children in Scope
/* 99797*/            OPC_CheckChild1Type, MVT::v8i16,
/* 99799*/            OPC_MoveChild2,
/* 99800*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 99803*/            OPC_RecordChild0, // #2 = $src3
/* 99804*/            OPC_CheckChild0Type, MVT::v8i16,
/* 99806*/            OPC_RecordChild1, // #3 = $lane
/* 99807*/            OPC_MoveChild1,
/* 99808*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 99811*/            OPC_MoveParent,
/* 99812*/            OPC_CheckType, MVT::v8i16,
/* 99814*/            OPC_MoveParent,
/* 99815*/            OPC_MoveParent,
/* 99816*/            OPC_CheckType, MVT::v8i16,
/* 99818*/            OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 99820*/            OPC_EmitConvertToTarget, 3,
/* 99822*/            OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 99825*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i16, 2/*#Ops*/, 2, 5,  // Results = #6
/* 99833*/            OPC_EmitConvertToTarget, 3,
/* 99835*/            OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 99838*/            OPC_EmitInteger, MVT::i32, 14, 
/* 99841*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99844*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv8i16), 0,
                          MVT::v8i16, 6/*#Ops*/, 0, 1, 6, 8, 9, 10, 
                      // Src: (ssubsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1728:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$src2, (ARMvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane))) - Complexity = 17
                      // 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))
/* 99856*/          /*Scope*/ 59, /*->99916*/
/* 99857*/            OPC_CheckChild1Type, MVT::v4i32,
/* 99859*/            OPC_MoveChild2,
/* 99860*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 99863*/            OPC_RecordChild0, // #2 = $src3
/* 99864*/            OPC_CheckChild0Type, MVT::v4i32,
/* 99866*/            OPC_RecordChild1, // #3 = $lane
/* 99867*/            OPC_MoveChild1,
/* 99868*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 99871*/            OPC_MoveParent,
/* 99872*/            OPC_CheckType, MVT::v4i32,
/* 99874*/            OPC_MoveParent,
/* 99875*/            OPC_MoveParent,
/* 99876*/            OPC_CheckType, MVT::v4i32,
/* 99878*/            OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 99880*/            OPC_EmitConvertToTarget, 3,
/* 99882*/            OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/* 99885*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i32, 2/*#Ops*/, 2, 5,  // Results = #6
/* 99893*/            OPC_EmitConvertToTarget, 3,
/* 99895*/            OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/* 99898*/            OPC_EmitInteger, MVT::i32, 14, 
/* 99901*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99904*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv4i32), 0,
                          MVT::v4i32, 6/*#Ops*/, 0, 1, 6, 8, 9, 10, 
                      // Src: (ssubsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1728:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$src2, (ARMvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane))) - Complexity = 17
                      // 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))
/* 99916*/          0, /*End of Scope*/
/* 99917*/        /*Scope*/ 119, /*->100037*/
/* 99918*/          OPC_MoveChild1,
/* 99919*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/* 99922*/          OPC_RecordChild0, // #1 = $src3
/* 99923*/          OPC_Scope, 55, /*->99980*/ // 2 children in Scope
/* 99925*/            OPC_CheckChild0Type, MVT::v8i16,
/* 99927*/            OPC_RecordChild1, // #2 = $lane
/* 99928*/            OPC_MoveChild1,
/* 99929*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 99932*/            OPC_MoveParent,
/* 99933*/            OPC_CheckType, MVT::v8i16,
/* 99935*/            OPC_MoveParent,
/* 99936*/            OPC_RecordChild2, // #3 = $src2
/* 99937*/            OPC_CheckChild2Type, MVT::v8i16,
/* 99939*/            OPC_MoveParent,
/* 99940*/            OPC_CheckType, MVT::v8i16,
/* 99942*/            OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/* 99944*/            OPC_EmitConvertToTarget, 2,
/* 99946*/            OPC_EmitNodeXForm, 5, 4, // DSubReg_i16_reg
/* 99949*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i16, 2/*#Ops*/, 1, 5,  // Results = #6
/* 99957*/            OPC_EmitConvertToTarget, 2,
/* 99959*/            OPC_EmitNodeXForm, 6, 7, // SubReg_i16_lane
/* 99962*/            OPC_EmitInteger, MVT::i32, 14, 
/* 99965*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/* 99968*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv8i16), 0,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 6, 8, 9, 10, 
                      // Src: (ssubsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8i16] }:$src2)) - Complexity = 17
                      // 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))
/* 99980*/          /*Scope*/ 55, /*->100036*/
/* 99981*/            OPC_CheckChild0Type, MVT::v4i32,
/* 99983*/            OPC_RecordChild1, // #2 = $lane
/* 99984*/            OPC_MoveChild1,
/* 99985*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 99988*/            OPC_MoveParent,
/* 99989*/            OPC_CheckType, MVT::v4i32,
/* 99991*/            OPC_MoveParent,
/* 99992*/            OPC_RecordChild2, // #3 = $src2
/* 99993*/            OPC_CheckChild2Type, MVT::v4i32,
/* 99995*/            OPC_MoveParent,
/* 99996*/            OPC_CheckType, MVT::v4i32,
/* 99998*/            OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/*100000*/            OPC_EmitConvertToTarget, 2,
/*100002*/            OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/*100005*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i32, 2/*#Ops*/, 1, 5,  // Results = #6
/*100013*/            OPC_EmitConvertToTarget, 2,
/*100015*/            OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/*100018*/            OPC_EmitInteger, MVT::i32, 14, 
/*100021*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100024*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHslv4i32), 0,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 6, 8, 9, 10, 
                      // Src: (ssubsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1728:{ *:[iPTR] }, (ARMvduplane:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src3, (imm:{ *:[i32] }):$lane), QPR:{ *:[v4i32] }:$src2)) - Complexity = 17
                      // 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))
/*100036*/          0, /*End of Scope*/
/*100037*/        /*Scope*/ 115, /*->100153*/
/*100038*/          OPC_RecordChild1, // #1 = $Vn
/*100039*/          OPC_Scope, 27, /*->100068*/ // 4 children in Scope
/*100041*/            OPC_CheckChild1Type, MVT::v4i16,
/*100043*/            OPC_RecordChild2, // #2 = $Vm
/*100044*/            OPC_CheckChild2Type, MVT::v4i16,
/*100046*/            OPC_MoveParent,
/*100047*/            OPC_CheckType, MVT::v4i16,
/*100049*/            OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/*100051*/            OPC_EmitInteger, MVT::i32, 14, 
/*100054*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100057*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHv4i16), 0,
                          MVT::v4i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ssubsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, (intrinsic_wo_chain:{ *:[v4i16] } 1728:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 11
                      // Dst: (VQRDMLSHv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/*100068*/          /*Scope*/ 27, /*->100096*/
/*100069*/            OPC_CheckChild1Type, MVT::v2i32,
/*100071*/            OPC_RecordChild2, // #2 = $Vm
/*100072*/            OPC_CheckChild2Type, MVT::v2i32,
/*100074*/            OPC_MoveParent,
/*100075*/            OPC_CheckType, MVT::v2i32,
/*100077*/            OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/*100079*/            OPC_EmitInteger, MVT::i32, 14, 
/*100082*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100085*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHv2i32), 0,
                          MVT::v2i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ssubsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, (intrinsic_wo_chain:{ *:[v2i32] } 1728:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 11
                      // Dst: (VQRDMLSHv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*100096*/          /*Scope*/ 27, /*->100124*/
/*100097*/            OPC_CheckChild1Type, MVT::v8i16,
/*100099*/            OPC_RecordChild2, // #2 = $Vm
/*100100*/            OPC_CheckChild2Type, MVT::v8i16,
/*100102*/            OPC_MoveParent,
/*100103*/            OPC_CheckType, MVT::v8i16,
/*100105*/            OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/*100107*/            OPC_EmitInteger, MVT::i32, 14, 
/*100110*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100113*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHv8i16), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ssubsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, (intrinsic_wo_chain:{ *:[v8i16] } 1728:{ *:[iPTR] }, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)) - Complexity = 11
                      // Dst: (VQRDMLSHv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/*100124*/          /*Scope*/ 27, /*->100152*/
/*100125*/            OPC_CheckChild1Type, MVT::v4i32,
/*100127*/            OPC_RecordChild2, // #2 = $Vm
/*100128*/            OPC_CheckChild2Type, MVT::v4i32,
/*100130*/            OPC_MoveParent,
/*100131*/            OPC_CheckType, MVT::v4i32,
/*100133*/            OPC_CheckPatternPredicate, 71, // (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps())
/*100135*/            OPC_EmitInteger, MVT::i32, 14, 
/*100138*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100141*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRDMLSHv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ssubsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1728:{ *:[iPTR] }, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)) - Complexity = 11
                      // Dst: (VQRDMLSHv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*100152*/          0, /*End of Scope*/
/*100153*/        0, /*End of Scope*/
/*100154*/      /*Scope*/ 117|128,1/*245*/, /*->100401*/
/*100156*/        OPC_CheckChild0Integer, 59|128,13/*1723*/, 
/*100159*/        OPC_Scope, 91, /*->100252*/ // 3 children in Scope
/*100161*/          OPC_RecordChild1, // #1 = $Vn
/*100162*/          OPC_Scope, 43, /*->100207*/ // 2 children in Scope
/*100164*/            OPC_CheckChild1Type, MVT::v4i16,
/*100166*/            OPC_MoveChild2,
/*100167*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*100170*/            OPC_RecordChild0, // #2 = $Vm
/*100171*/            OPC_CheckChild0Type, MVT::v4i16,
/*100173*/            OPC_RecordChild1, // #3 = $lane
/*100174*/            OPC_MoveChild1,
/*100175*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*100178*/            OPC_MoveParent,
/*100179*/            OPC_CheckType, MVT::v4i16,
/*100181*/            OPC_MoveParent,
/*100182*/            OPC_MoveParent,
/*100183*/            OPC_CheckType, MVT::v4i32,
/*100185*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*100187*/            OPC_EmitConvertToTarget, 3,
/*100189*/            OPC_EmitInteger, MVT::i32, 14, 
/*100192*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100195*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLSLslv4i16), 0,
                          MVT::v4i32, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (ssubsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1723:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 17
                      // Dst: (VQDMLSLslv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/*100207*/          /*Scope*/ 43, /*->100251*/
/*100208*/            OPC_CheckChild1Type, MVT::v2i32,
/*100210*/            OPC_MoveChild2,
/*100211*/            OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*100214*/            OPC_RecordChild0, // #2 = $Vm
/*100215*/            OPC_CheckChild0Type, MVT::v2i32,
/*100217*/            OPC_RecordChild1, // #3 = $lane
/*100218*/            OPC_MoveChild1,
/*100219*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*100222*/            OPC_MoveParent,
/*100223*/            OPC_CheckType, MVT::v2i32,
/*100225*/            OPC_MoveParent,
/*100226*/            OPC_MoveParent,
/*100227*/            OPC_CheckType, MVT::v2i64,
/*100229*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*100231*/            OPC_EmitConvertToTarget, 3,
/*100233*/            OPC_EmitInteger, MVT::i32, 14, 
/*100236*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100239*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLSLslv2i32), 0,
                          MVT::v2i64, 6/*#Ops*/, 0, 1, 2, 4, 5, 6, 
                      // Src: (ssubsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 1723:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane))) - Complexity = 17
                      // Dst: (VQDMLSLslv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/*100251*/          0, /*End of Scope*/
/*100252*/        /*Scope*/ 87, /*->100340*/
/*100253*/          OPC_MoveChild1,
/*100254*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*100257*/          OPC_RecordChild0, // #1 = $Vm
/*100258*/          OPC_Scope, 39, /*->100299*/ // 2 children in Scope
/*100260*/            OPC_CheckChild0Type, MVT::v4i16,
/*100262*/            OPC_RecordChild1, // #2 = $lane
/*100263*/            OPC_MoveChild1,
/*100264*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*100267*/            OPC_MoveParent,
/*100268*/            OPC_CheckType, MVT::v4i16,
/*100270*/            OPC_MoveParent,
/*100271*/            OPC_RecordChild2, // #3 = $Vn
/*100272*/            OPC_CheckChild2Type, MVT::v4i16,
/*100274*/            OPC_MoveParent,
/*100275*/            OPC_CheckType, MVT::v4i32,
/*100277*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*100279*/            OPC_EmitConvertToTarget, 2,
/*100281*/            OPC_EmitInteger, MVT::i32, 14, 
/*100284*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100287*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLSLslv4i16), 0,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                      // Src: (ssubsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1723:{ *:[iPTR] }, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v4i16] }:$Vn)) - Complexity = 17
                      // Dst: (VQDMLSLslv4i16:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/*100299*/          /*Scope*/ 39, /*->100339*/
/*100300*/            OPC_CheckChild0Type, MVT::v2i32,
/*100302*/            OPC_RecordChild1, // #2 = $lane
/*100303*/            OPC_MoveChild1,
/*100304*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*100307*/            OPC_MoveParent,
/*100308*/            OPC_CheckType, MVT::v2i32,
/*100310*/            OPC_MoveParent,
/*100311*/            OPC_RecordChild2, // #3 = $Vn
/*100312*/            OPC_CheckChild2Type, MVT::v2i32,
/*100314*/            OPC_MoveParent,
/*100315*/            OPC_CheckType, MVT::v2i64,
/*100317*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*100319*/            OPC_EmitConvertToTarget, 2,
/*100321*/            OPC_EmitInteger, MVT::i32, 14, 
/*100324*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100327*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLSLslv2i32), 0,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 1, 4, 5, 6, 
                      // Src: (ssubsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 1723:{ *:[iPTR] }, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane), DPR:{ *:[v2i32] }:$Vn)) - Complexity = 17
                      // Dst: (VQDMLSLslv2i32:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/*100339*/          0, /*End of Scope*/
/*100340*/        /*Scope*/ 59, /*->100400*/
/*100341*/          OPC_RecordChild1, // #1 = $Vn
/*100342*/          OPC_Scope, 27, /*->100371*/ // 2 children in Scope
/*100344*/            OPC_CheckChild1Type, MVT::v4i16,
/*100346*/            OPC_RecordChild2, // #2 = $Vm
/*100347*/            OPC_CheckChild2Type, MVT::v4i16,
/*100349*/            OPC_MoveParent,
/*100350*/            OPC_CheckType, MVT::v4i32,
/*100352*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*100354*/            OPC_EmitInteger, MVT::i32, 14, 
/*100357*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100360*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLSLv4i32), 0,
                          MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ssubsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, (intrinsic_wo_chain:{ *:[v4i32] } 1723:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 11
                      // Dst: (VQDMLSLv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/*100371*/          /*Scope*/ 27, /*->100399*/
/*100372*/            OPC_CheckChild1Type, MVT::v2i32,
/*100374*/            OPC_RecordChild2, // #2 = $Vm
/*100375*/            OPC_CheckChild2Type, MVT::v2i32,
/*100377*/            OPC_MoveParent,
/*100378*/            OPC_CheckType, MVT::v2i64,
/*100380*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*100382*/            OPC_EmitInteger, MVT::i32, 14, 
/*100385*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100388*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VQDMLSLv2i64), 0,
                          MVT::v2i64, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ssubsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, (intrinsic_wo_chain:{ *:[v2i64] } 1723:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 11
                      // Dst: (VQDMLSLv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*100399*/          0, /*End of Scope*/
/*100400*/        0, /*End of Scope*/
/*100401*/      0, /*End of Scope*/
/*100402*/    /*Scope*/ 122|128,1/*250*/, /*->100654*/
/*100404*/      OPC_RecordChild1, // #1 = $Vm
/*100405*/      OPC_SwitchType /*8 cases */, 18, MVT::v4i16,// ->100426
/*100408*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*100410*/        OPC_EmitInteger, MVT::i32, 14, 
/*100413*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100416*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ssubsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                  // Dst: (VQSUBsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/*100426*/      /*SwitchType*/ 18, MVT::v2i32,// ->100446
/*100428*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*100430*/        OPC_EmitInteger, MVT::i32, 14, 
/*100433*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100436*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ssubsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                  // Dst: (VQSUBsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*100446*/      /*SwitchType*/ 47, MVT::v8i16,// ->100495
/*100448*/        OPC_Scope, 18, /*->100468*/ // 2 children in Scope
/*100450*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*100452*/          OPC_EmitInteger, MVT::i32, 14, 
/*100455*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100458*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ssubsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                    // Dst: (VQSUBsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/*100468*/        /*Scope*/ 25, /*->100494*/
/*100469*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*100471*/          OPC_EmitInteger, MVT::i32, 0, 
/*100474*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100477*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*100483*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSUBs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ssubsat:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VQSUBs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/*100494*/        0, /*End of Scope*/
/*100495*/      /*SwitchType*/ 47, MVT::v4i32,// ->100544
/*100497*/        OPC_Scope, 18, /*->100517*/ // 2 children in Scope
/*100499*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*100501*/          OPC_EmitInteger, MVT::i32, 14, 
/*100504*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100507*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ssubsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                    // Dst: (VQSUBsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*100517*/        /*Scope*/ 25, /*->100543*/
/*100518*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*100520*/          OPC_EmitInteger, MVT::i32, 0, 
/*100523*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100526*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*100532*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSUBs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ssubsat:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VQSUBs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/*100543*/        0, /*End of Scope*/
/*100544*/      /*SwitchType*/ 18, MVT::v8i8,// ->100564
/*100546*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*100548*/        OPC_EmitInteger, MVT::i32, 14, 
/*100551*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100554*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ssubsat:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                  // Dst: (VQSUBsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/*100564*/      /*SwitchType*/ 47, MVT::v16i8,// ->100613
/*100566*/        OPC_Scope, 18, /*->100586*/ // 2 children in Scope
/*100568*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*100570*/          OPC_EmitInteger, MVT::i32, 14, 
/*100573*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100576*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv16i8), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ssubsat:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                    // Dst: (VQSUBsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/*100586*/        /*Scope*/ 25, /*->100612*/
/*100587*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*100589*/          OPC_EmitInteger, MVT::i32, 0, 
/*100592*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100595*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*100601*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSUBs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ssubsat:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VQSUBs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/*100612*/        0, /*End of Scope*/
/*100613*/      /*SwitchType*/ 18, MVT::v1i64,// ->100633
/*100615*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*100617*/        OPC_EmitInteger, MVT::i32, 14, 
/*100620*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100623*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ssubsat:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) - Complexity = 3
                  // Dst: (VQSUBsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*100633*/      /*SwitchType*/ 18, MVT::v2i64,// ->100653
/*100635*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*100637*/        OPC_EmitInteger, MVT::i32, 14, 
/*100640*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100643*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBsv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ssubsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 3
                  // Dst: (VQSUBsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*100653*/      0, // EndSwitchType
/*100654*/    0, /*End of Scope*/
/*100655*/  /*SwitchOpcode*/ 23, TARGET_VAL(ARMISD::MEMCPY),// ->100681
/*100658*/    OPC_RecordNode, // #0 = 'ARMmemcopy' chained node
/*100659*/    OPC_CaptureGlueInput,
/*100660*/    OPC_RecordChild1, // #1 = $dst
/*100661*/    OPC_RecordChild2, // #2 = $src
/*100662*/    OPC_RecordChild3, // #3 = $nreg
/*100663*/    OPC_MoveChild3,
/*100664*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*100667*/    OPC_MoveParent,
/*100668*/    OPC_EmitMergeInputChains1_0,
/*100669*/    OPC_EmitConvertToTarget, 3,
/*100671*/    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)
/*100681*/  /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(ARMISD::Wrapper),// ->100875
/*100685*/    OPC_RecordChild0, // #0 = $src
/*100686*/    OPC_MoveChild0,
/*100687*/    OPC_SwitchOpcode /*4 cases */, 45, TARGET_VAL(ISD::TargetGlobalAddress),// ->100736
/*100691*/      OPC_MoveParent,
/*100692*/      OPC_CheckType, MVT::i32,
/*100694*/      OPC_Scope, 9, /*->100705*/ // 4 children in Scope
/*100696*/        OPC_CheckPatternPredicate, 72, // (!Subtarget->useMovt()) && (!Subtarget->isThumb())
/*100698*/        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)
/*100705*/      /*Scope*/ 9, /*->100715*/
/*100706*/        OPC_CheckPatternPredicate, 73, // (!Subtarget->isThumb()) && (Subtarget->useMovt())
/*100708*/        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)
/*100715*/      /*Scope*/ 9, /*->100725*/
/*100716*/        OPC_CheckPatternPredicate, 74, // (!Subtarget->useMovt()) && (Subtarget->isThumb())
/*100718*/        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)
/*100725*/      /*Scope*/ 9, /*->100735*/
/*100726*/        OPC_CheckPatternPredicate, 75, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt())
/*100728*/        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)
/*100735*/      0, /*End of Scope*/
/*100736*/    /*SwitchOpcode*/ 45, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->100784
/*100739*/      OPC_MoveParent,
/*100740*/      OPC_CheckType, MVT::i32,
/*100742*/      OPC_Scope, 9, /*->100753*/ // 4 children in Scope
/*100744*/        OPC_CheckPatternPredicate, 73, // (!Subtarget->isThumb()) && (Subtarget->useMovt())
/*100746*/        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)
/*100753*/      /*Scope*/ 9, /*->100763*/
/*100754*/        OPC_CheckPatternPredicate, 72, // (!Subtarget->useMovt()) && (!Subtarget->isThumb())
/*100756*/        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)
/*100763*/      /*Scope*/ 9, /*->100773*/
/*100764*/        OPC_CheckPatternPredicate, 74, // (!Subtarget->useMovt()) && (Subtarget->isThumb())
/*100766*/        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)
/*100773*/      /*Scope*/ 9, /*->100783*/
/*100774*/        OPC_CheckPatternPredicate, 76, // (Subtarget->isThumb2()) && (Subtarget->useMovt())
/*100776*/        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)
/*100783*/      0, /*End of Scope*/
/*100784*/    /*SwitchOpcode*/ 59, TARGET_VAL(ISD::TargetConstantPool),// ->100846
/*100787*/      OPC_MoveParent,
/*100788*/      OPC_CheckType, MVT::i32,
/*100790*/      OPC_Scope, 17, /*->100809*/ // 3 children in Scope
/*100792*/        OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*100794*/        OPC_EmitInteger, MVT::i32, 14, 
/*100797*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100800*/        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)
/*100809*/      /*Scope*/ 17, /*->100827*/
/*100810*/        OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*100812*/        OPC_EmitInteger, MVT::i32, 14, 
/*100815*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100818*/        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)
/*100827*/      /*Scope*/ 17, /*->100845*/
/*100828*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*100830*/        OPC_EmitInteger, MVT::i32, 14, 
/*100833*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100836*/        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)
/*100845*/      0, /*End of Scope*/
/*100846*/    /*SwitchOpcode*/ 25, TARGET_VAL(ISD::TargetExternalSymbol),// ->100874
/*100849*/      OPC_MoveParent,
/*100850*/      OPC_CheckType, MVT::i32,
/*100852*/      OPC_Scope, 9, /*->100863*/ // 2 children in Scope
/*100854*/        OPC_CheckPatternPredicate, 73, // (!Subtarget->isThumb()) && (Subtarget->useMovt())
/*100856*/        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)
/*100863*/      /*Scope*/ 9, /*->100873*/
/*100864*/        OPC_CheckPatternPredicate, 75, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt())
/*100866*/        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)
/*100873*/      0, /*End of Scope*/
/*100874*/    0, // EndSwitchOpcode
/*100875*/  /*SwitchOpcode*/ 100, TARGET_VAL(ARMISD::WrapperPIC),// ->100978
/*100878*/    OPC_RecordChild0, // #0 = $addr
/*100879*/    OPC_MoveChild0,
/*100880*/    OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::TargetGlobalAddress),// ->100929
/*100884*/      OPC_MoveParent,
/*100885*/      OPC_CheckType, MVT::i32,
/*100887*/      OPC_Scope, 9, /*->100898*/ // 4 children in Scope
/*100889*/        OPC_CheckPatternPredicate, 59, // (!Subtarget->isThumb()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt())
/*100891*/        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)
/*100898*/      /*Scope*/ 9, /*->100908*/
/*100899*/        OPC_CheckPatternPredicate, 58, // (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt()) && (!Subtarget->isThumb())
/*100901*/        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)
/*100908*/      /*Scope*/ 9, /*->100918*/
/*100909*/        OPC_CheckPatternPredicate, 77, // (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt()) && (Subtarget->isThumb())
/*100911*/        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)
/*100918*/      /*Scope*/ 9, /*->100928*/
/*100919*/        OPC_CheckPatternPredicate, 78, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt())
/*100921*/        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)
/*100928*/      0, /*End of Scope*/
/*100929*/    /*SwitchOpcode*/ 45, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->100977
/*100932*/      OPC_MoveParent,
/*100933*/      OPC_CheckType, MVT::i32,
/*100935*/      OPC_Scope, 9, /*->100946*/ // 4 children in Scope
/*100937*/        OPC_CheckPatternPredicate, 59, // (!Subtarget->isThumb()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt())
/*100939*/        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)
/*100946*/      /*Scope*/ 9, /*->100956*/
/*100947*/        OPC_CheckPatternPredicate, 58, // (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt()) && (!Subtarget->isThumb())
/*100949*/        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)
/*100956*/      /*Scope*/ 9, /*->100966*/
/*100957*/        OPC_CheckPatternPredicate, 77, // (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt()) && (Subtarget->isThumb())
/*100959*/        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)
/*100966*/      /*Scope*/ 9, /*->100976*/
/*100967*/        OPC_CheckPatternPredicate, 79, // (Subtarget->isThumb2()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt())
/*100969*/        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)
/*100976*/      0, /*End of Scope*/
/*100977*/    0, // EndSwitchOpcode
/*100978*/  /*SwitchOpcode*/ 64, TARGET_VAL(ARMISD::WrapperJT),// ->101045
/*100981*/    OPC_RecordChild0, // #0 = $dst
/*100982*/    OPC_MoveChild0,
/*100983*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
/*100986*/    OPC_MoveParent,
/*100987*/    OPC_CheckType, MVT::i32,
/*100989*/    OPC_Scope, 17, /*->101008*/ // 3 children in Scope
/*100991*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*100993*/      OPC_EmitInteger, MVT::i32, 14, 
/*100996*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*100999*/      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)
/*101008*/    /*Scope*/ 17, /*->101026*/
/*101009*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*101011*/      OPC_EmitInteger, MVT::i32, 14, 
/*101014*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101017*/      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)
/*101026*/    /*Scope*/ 17, /*->101044*/
/*101027*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*101029*/      OPC_EmitInteger, MVT::i32, 14, 
/*101032*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101035*/      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)
/*101044*/    0, /*End of Scope*/
/*101045*/  /*SwitchOpcode*/ 45, TARGET_VAL(ARMISD::TC_RETURN),// ->101093
/*101048*/    OPC_RecordNode, // #0 = 'ARMtcret' chained node
/*101049*/    OPC_CaptureGlueInput,
/*101050*/    OPC_RecordChild1, // #1 = $dst
/*101051*/    OPC_Scope, 29, /*->101082*/ // 2 children in Scope
/*101053*/      OPC_MoveChild1,
/*101054*/      OPC_SwitchOpcode /*2 cases */, 10, TARGET_VAL(ISD::TargetGlobalAddress),// ->101068
/*101058*/        OPC_CheckType, MVT::i32,
/*101060*/        OPC_MoveParent,
/*101061*/        OPC_EmitMergeInputChains1_0,
/*101062*/        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)
/*101068*/      /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetExternalSymbol),// ->101081
/*101071*/        OPC_CheckType, MVT::i32,
/*101073*/        OPC_MoveParent,
/*101074*/        OPC_EmitMergeInputChains1_0,
/*101075*/        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)
/*101081*/      0, // EndSwitchOpcode
/*101082*/    /*Scope*/ 9, /*->101092*/
/*101083*/      OPC_CheckChild1Type, MVT::i32,
/*101085*/      OPC_EmitMergeInputChains1_0,
/*101086*/      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)
/*101092*/    0, /*End of Scope*/
/*101093*/  /*SwitchOpcode*/ 22, TARGET_VAL(ARMISD::BR2_JT),// ->101118
/*101096*/    OPC_RecordNode, // #0 = 'ARMbr2jt' chained node
/*101097*/    OPC_RecordChild1, // #1 = $target
/*101098*/    OPC_CheckChild1Type, MVT::i32,
/*101100*/    OPC_RecordChild2, // #2 = $index
/*101101*/    OPC_RecordChild3, // #3 = $jt
/*101102*/    OPC_MoveChild3,
/*101103*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
/*101106*/    OPC_MoveParent,
/*101107*/    OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/*101109*/    OPC_EmitMergeInputChains1_0,
/*101110*/    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)
/*101118*/  /*SwitchOpcode*/ 71|128,1/*199*/, TARGET_VAL(ARMISD::VGETLANEs),// ->101321
/*101122*/    OPC_RecordChild0, // #0 = $V
/*101123*/    OPC_Scope, 28, /*->101153*/ // 4 children in Scope
/*101125*/      OPC_CheckChild0Type, MVT::v8i8,
/*101127*/      OPC_RecordChild1, // #1 = $lane
/*101128*/      OPC_MoveChild1,
/*101129*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101132*/      OPC_MoveParent,
/*101133*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*101135*/      OPC_EmitConvertToTarget, 1,
/*101137*/      OPC_EmitInteger, MVT::i32, 14, 
/*101140*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101143*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNs8), 0,
                    MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (ARMvgetlanes:{ *:[i32] } DPR:{ *:[v8i8] }:$V, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VGETLNs8:{ *:[i32] } DPR:{ *:[v8i8] }:$V, (imm:{ *:[i32] }):$lane)
/*101153*/    /*Scope*/ 28, /*->101182*/
/*101154*/      OPC_CheckChild0Type, MVT::v4i16,
/*101156*/      OPC_RecordChild1, // #1 = $lane
/*101157*/      OPC_MoveChild1,
/*101158*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101161*/      OPC_MoveParent,
/*101162*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*101164*/      OPC_EmitConvertToTarget, 1,
/*101166*/      OPC_EmitInteger, MVT::i32, 14, 
/*101169*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101172*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNs16), 0,
                    MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (ARMvgetlanes:{ *:[i32] } DPR:{ *:[v4i16] }:$V, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VGETLNs16:{ *:[i32] } DPR:{ *:[v4i16] }:$V, (imm:{ *:[i32] }):$lane)
/*101182*/    /*Scope*/ 68, /*->101251*/
/*101183*/      OPC_CheckChild0Type, MVT::v16i8,
/*101185*/      OPC_RecordChild1, // #1 = $lane
/*101186*/      OPC_MoveChild1,
/*101187*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101190*/      OPC_MoveParent,
/*101191*/      OPC_Scope, 20, /*->101213*/ // 2 children in Scope
/*101193*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*101195*/        OPC_EmitConvertToTarget, 1,
/*101197*/        OPC_EmitInteger, MVT::i32, 14, 
/*101200*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101203*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOV_from_lane_s8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvgetlanes:{ *:[i32] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (MVE_VMOV_from_lane_s8:{ *:[i32] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$lane)
/*101213*/      /*Scope*/ 36, /*->101250*/
/*101214*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*101216*/        OPC_EmitConvertToTarget, 1,
/*101218*/        OPC_EmitNodeXForm, 15, 2, // DSubReg_i8_reg
/*101221*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 3,  // Results = #4
/*101229*/        OPC_EmitConvertToTarget, 1,
/*101231*/        OPC_EmitNodeXForm, 16, 5, // SubReg_i8_lane
/*101234*/        OPC_EmitInteger, MVT::i32, 14, 
/*101237*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101240*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNs8), 0,
                      MVT::i32, 4/*#Ops*/, 4, 6, 7, 8, 
                  // Src: (ARMvgetlanes:{ *:[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))
/*101250*/      0, /*End of Scope*/
/*101251*/    /*Scope*/ 68, /*->101320*/
/*101252*/      OPC_CheckChild0Type, MVT::v8i16,
/*101254*/      OPC_RecordChild1, // #1 = $lane
/*101255*/      OPC_MoveChild1,
/*101256*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101259*/      OPC_MoveParent,
/*101260*/      OPC_Scope, 20, /*->101282*/ // 2 children in Scope
/*101262*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*101264*/        OPC_EmitConvertToTarget, 1,
/*101266*/        OPC_EmitInteger, MVT::i32, 14, 
/*101269*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101272*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOV_from_lane_s16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvgetlanes:{ *:[i32] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (MVE_VMOV_from_lane_s16:{ *:[i32] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$lane)
/*101282*/      /*Scope*/ 36, /*->101319*/
/*101283*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*101285*/        OPC_EmitConvertToTarget, 1,
/*101287*/        OPC_EmitNodeXForm, 5, 2, // DSubReg_i16_reg
/*101290*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 3,  // Results = #4
/*101298*/        OPC_EmitConvertToTarget, 1,
/*101300*/        OPC_EmitNodeXForm, 6, 5, // SubReg_i16_lane
/*101303*/        OPC_EmitInteger, MVT::i32, 14, 
/*101306*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101309*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNs16), 0,
                      MVT::i32, 4/*#Ops*/, 4, 6, 7, 8, 
                  // Src: (ARMvgetlanes:{ *:[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))
/*101319*/      0, /*End of Scope*/
/*101320*/    0, /*End of Scope*/
/*101321*/  /*SwitchOpcode*/ 71|128,1/*199*/, TARGET_VAL(ARMISD::VGETLANEu),// ->101524
/*101325*/    OPC_RecordChild0, // #0 = $V
/*101326*/    OPC_Scope, 28, /*->101356*/ // 4 children in Scope
/*101328*/      OPC_CheckChild0Type, MVT::v8i8,
/*101330*/      OPC_RecordChild1, // #1 = $lane
/*101331*/      OPC_MoveChild1,
/*101332*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101335*/      OPC_MoveParent,
/*101336*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*101338*/      OPC_EmitConvertToTarget, 1,
/*101340*/      OPC_EmitInteger, MVT::i32, 14, 
/*101343*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101346*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNu8), 0,
                    MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (ARMvgetlaneu:{ *:[i32] } DPR:{ *:[v8i8] }:$V, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VGETLNu8:{ *:[i32] } DPR:{ *:[v8i8] }:$V, (imm:{ *:[i32] }):$lane)
/*101356*/    /*Scope*/ 28, /*->101385*/
/*101357*/      OPC_CheckChild0Type, MVT::v4i16,
/*101359*/      OPC_RecordChild1, // #1 = $lane
/*101360*/      OPC_MoveChild1,
/*101361*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101364*/      OPC_MoveParent,
/*101365*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*101367*/      OPC_EmitConvertToTarget, 1,
/*101369*/      OPC_EmitInteger, MVT::i32, 14, 
/*101372*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101375*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNu16), 0,
                    MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (ARMvgetlaneu:{ *:[i32] } DPR:{ *:[v4i16] }:$V, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VGETLNu16:{ *:[i32] } DPR:{ *:[v4i16] }:$V, (imm:{ *:[i32] }):$lane)
/*101385*/    /*Scope*/ 68, /*->101454*/
/*101386*/      OPC_CheckChild0Type, MVT::v16i8,
/*101388*/      OPC_RecordChild1, // #1 = $lane
/*101389*/      OPC_MoveChild1,
/*101390*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101393*/      OPC_MoveParent,
/*101394*/      OPC_Scope, 20, /*->101416*/ // 2 children in Scope
/*101396*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*101398*/        OPC_EmitConvertToTarget, 1,
/*101400*/        OPC_EmitInteger, MVT::i32, 14, 
/*101403*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101406*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOV_from_lane_u8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvgetlaneu:{ *:[i32] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (MVE_VMOV_from_lane_u8:{ *:[i32] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$lane)
/*101416*/      /*Scope*/ 36, /*->101453*/
/*101417*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*101419*/        OPC_EmitConvertToTarget, 1,
/*101421*/        OPC_EmitNodeXForm, 15, 2, // DSubReg_i8_reg
/*101424*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 3,  // Results = #4
/*101432*/        OPC_EmitConvertToTarget, 1,
/*101434*/        OPC_EmitNodeXForm, 16, 5, // SubReg_i8_lane
/*101437*/        OPC_EmitInteger, MVT::i32, 14, 
/*101440*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101443*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNu8), 0,
                      MVT::i32, 4/*#Ops*/, 4, 6, 7, 8, 
                  // Src: (ARMvgetlaneu:{ *:[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))
/*101453*/      0, /*End of Scope*/
/*101454*/    /*Scope*/ 68, /*->101523*/
/*101455*/      OPC_CheckChild0Type, MVT::v8i16,
/*101457*/      OPC_RecordChild1, // #1 = $lane
/*101458*/      OPC_MoveChild1,
/*101459*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101462*/      OPC_MoveParent,
/*101463*/      OPC_Scope, 20, /*->101485*/ // 2 children in Scope
/*101465*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*101467*/        OPC_EmitConvertToTarget, 1,
/*101469*/        OPC_EmitInteger, MVT::i32, 14, 
/*101472*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101475*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOV_from_lane_u16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvgetlaneu:{ *:[i32] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (MVE_VMOV_from_lane_u16:{ *:[i32] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$lane)
/*101485*/      /*Scope*/ 36, /*->101522*/
/*101486*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*101488*/        OPC_EmitConvertToTarget, 1,
/*101490*/        OPC_EmitNodeXForm, 5, 2, // DSubReg_i16_reg
/*101493*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 3,  // Results = #4
/*101501*/        OPC_EmitConvertToTarget, 1,
/*101503*/        OPC_EmitNodeXForm, 6, 5, // SubReg_i16_lane
/*101506*/        OPC_EmitInteger, MVT::i32, 14, 
/*101509*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101512*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VGETLNu16), 0,
                      MVT::i32, 4/*#Ops*/, 4, 6, 7, 8, 
                  // Src: (ARMvgetlaneu:{ *:[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))
/*101522*/      0, /*End of Scope*/
/*101523*/    0, /*End of Scope*/
/*101524*/  /*SwitchOpcode*/ 48|128,4/*560*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->102088
/*101528*/    OPC_RecordChild0, // #0 = $V
/*101529*/    OPC_Scope, 60, /*->101591*/ // 7 children in Scope
/*101531*/      OPC_CheckChild0Type, MVT::v2i32,
/*101533*/      OPC_RecordChild1, // #1 = $lane
/*101534*/      OPC_MoveChild1,
/*101535*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101538*/      OPC_MoveParent,
/*101539*/      OPC_CheckType, MVT::i32,
/*101541*/      OPC_Scope, 20, /*->101563*/ // 2 children in Scope
/*101543*/        OPC_CheckPatternPredicate, 80, // (Subtarget->hasFPRegs()) && (!Subtarget->hasSlowVGETLNi32())
/*101545*/        OPC_EmitConvertToTarget, 1,
/*101547*/        OPC_EmitInteger, MVT::i32, 14, 
/*101550*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101553*/        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)
/*101563*/      /*Scope*/ 26, /*->101590*/
/*101564*/        OPC_CheckPatternPredicate, 81, // (Subtarget->hasNEON()) && (Subtarget->hasSlowVGETLNi32())
/*101566*/        OPC_EmitConvertToTarget, 1,
/*101568*/        OPC_EmitNodeXForm, 17, 2, // SSubReg_f32_reg
/*101571*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*101579*/        OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*101582*/        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] })
/*101590*/      0, /*End of Scope*/
/*101591*/    /*Scope*/ 103, /*->101695*/
/*101592*/      OPC_CheckChild0Type, MVT::v4i32,
/*101594*/      OPC_RecordChild1, // #1 = $lane
/*101595*/      OPC_MoveChild1,
/*101596*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101599*/      OPC_MoveParent,
/*101600*/      OPC_CheckType, MVT::i32,
/*101602*/      OPC_Scope, 36, /*->101640*/ // 3 children in Scope
/*101604*/        OPC_CheckPatternPredicate, 82, // (!Subtarget->hasSlowVGETLNi32()) && (Subtarget->hasNEON())
/*101606*/        OPC_EmitConvertToTarget, 1,
/*101608*/        OPC_EmitNodeXForm, 7, 2, // DSubReg_i32_reg
/*101611*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*101619*/        OPC_EmitConvertToTarget, 1,
/*101621*/        OPC_EmitNodeXForm, 8, 5, // SubReg_i32_lane
/*101624*/        OPC_EmitInteger, MVT::i32, 14, 
/*101627*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*101630*/        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))
/*101640*/      /*Scope*/ 26, /*->101667*/
/*101641*/        OPC_CheckPatternPredicate, 81, // (Subtarget->hasNEON()) && (Subtarget->hasSlowVGETLNi32())
/*101643*/        OPC_EmitConvertToTarget, 1,
/*101645*/        OPC_EmitNodeXForm, 17, 2, // SSubReg_f32_reg
/*101648*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*101656*/        OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*101659*/        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] })
/*101667*/      /*Scope*/ 26, /*->101694*/
/*101668*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*101670*/        OPC_EmitConvertToTarget, 1,
/*101672*/        OPC_EmitNodeXForm, 17, 2, // SSubReg_f32_reg
/*101675*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*101683*/        OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*101686*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 4, 5, 
                  // Src: (extractelt:{ *:[i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                  // Dst: (COPY_TO_REGCLASS:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i32] } MQPR:{ *:[v4i32] }:$src, (SSubReg_f32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)), rGPR:{ *:[i32] })
/*101694*/      0, /*End of Scope*/
/*101695*/    /*Scope*/ 21|128,1/*149*/, /*->101846*/
/*101697*/      OPC_CheckChild0Type, MVT::v8f16,
/*101699*/      OPC_RecordChild1, // #1 = $lane
/*101700*/      OPC_MoveChild1,
/*101701*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101704*/      OPC_CheckType, MVT::i32,
/*101706*/      OPC_Scope, 50, /*->101758*/ // 2 children in Scope
/*101708*/        OPC_CheckPredicate, 90, // Predicate_imm_even
/*101710*/        OPC_MoveParent,
/*101711*/        OPC_CheckType, MVT::f16,
/*101713*/        OPC_Scope, 15, /*->101730*/ // 2 children in Scope
/*101715*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*101717*/          OPC_EmitConvertToTarget, 1,
/*101719*/          OPC_EmitNodeXForm, 18, 2, // SSubReg_f16_reg
/*101722*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f16, 2/*#Ops*/, 0, 3, 
                    // Src: (extractelt:{ *:[f16] } MQPR:{ *:[v8f16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm_even>>:$lane) - Complexity = 7
                    // Dst: (EXTRACT_SUBREG:{ *:[f16] } MQPR:{ *:[v8f16] }:$src, (SSubReg_f16_reg:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm_even>>:$lane))
/*101730*/        /*Scope*/ 26, /*->101757*/
/*101731*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*101733*/          OPC_EmitInteger, MVT::i32, ARM::QPR_VFP2RegClassID,
/*101736*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*101744*/          OPC_EmitConvertToTarget, 1,
/*101746*/          OPC_EmitNodeXForm, 18, 4, // SSubReg_f16_reg
/*101749*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f16, 2/*#Ops*/, 3, 5, 
                    // Src: (extractelt:{ *:[f16] } QPR:{ *:[v8f16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm_even>>:$lane) - Complexity = 7
                    // Dst: (EXTRACT_SUBREG:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[v4f32] } QPR:{ *:[v8f16] }:$src, QPR_VFP2:{ *:[i32] }), (SSubReg_f16_reg:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm_even>>:$lane))
/*101757*/        0, /*End of Scope*/
/*101758*/      /*Scope*/ 86, /*->101845*/
/*101759*/        OPC_CheckPredicate, 91, // Predicate_imm_odd
/*101761*/        OPC_MoveParent,
/*101762*/        OPC_CheckType, MVT::f16,
/*101764*/        OPC_Scope, 33, /*->101799*/ // 2 children in Scope
/*101766*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*101768*/          OPC_EmitConvertToTarget, 1,
/*101770*/          OPC_EmitNodeXForm, 18, 2, // SSubReg_f16_reg
/*101773*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*101781*/          OPC_EmitNode1, TARGET_VAL(ARM::VMOVH), 0,
                        MVT::f32, 1/*#Ops*/, 4,  // Results = #5
/*101788*/          OPC_EmitInteger, MVT::i32, ARM::HPRRegClassID,
/*101791*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f16, 2/*#Ops*/, 5, 6, 
                    // Src: (extractelt:{ *:[f16] } MQPR:{ *:[v8f16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm_odd>>:$lane) - Complexity = 7
                    // Dst: (COPY_TO_REGCLASS:{ *:[f16] } (VMOVH:{ *:[f32] } (EXTRACT_SUBREG:{ *:[f32] } MQPR:{ *:[v8f16] }:$src, (SSubReg_f16_reg:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm_odd>>:$lane))), HPR:{ *:[i32] })
/*101799*/        /*Scope*/ 44, /*->101844*/
/*101800*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*101802*/          OPC_EmitInteger, MVT::i32, ARM::QPR_VFP2RegClassID,
/*101805*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*101813*/          OPC_EmitConvertToTarget, 1,
/*101815*/          OPC_EmitNodeXForm, 18, 4, // SSubReg_f16_reg
/*101818*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*101826*/          OPC_EmitNode1, TARGET_VAL(ARM::VMOVH), 0,
                        MVT::f32, 1/*#Ops*/, 6,  // Results = #7
/*101833*/          OPC_EmitInteger, MVT::i32, ARM::HPRRegClassID,
/*101836*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f16, 2/*#Ops*/, 7, 8, 
                    // Src: (extractelt:{ *:[f16] } QPR:{ *:[v8f16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm_odd>>:$lane) - Complexity = 7
                    // Dst: (COPY_TO_REGCLASS:{ *:[f16] } (VMOVH:{ *:[f32] } (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } QPR:{ *:[v8f16] }:$src, QPR_VFP2:{ *:[i32] }), (SSubReg_f16_reg:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm_odd>>:$lane))), HPR:{ *:[i32] })
/*101844*/        0, /*End of Scope*/
/*101845*/      0, /*End of Scope*/
/*101846*/    /*Scope*/ 93, /*->101940*/
/*101847*/      OPC_CheckChild0Type, MVT::v4f16,
/*101849*/      OPC_RecordChild1, // #1 = $lane
/*101850*/      OPC_MoveChild1,
/*101851*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101854*/      OPC_CheckType, MVT::i32,
/*101856*/      OPC_Scope, 31, /*->101889*/ // 2 children in Scope
/*101858*/        OPC_CheckPredicate, 90, // Predicate_imm_even
/*101860*/        OPC_MoveParent,
/*101861*/        OPC_CheckType, MVT::f16,
/*101863*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*101865*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*101868*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*101876*/        OPC_EmitConvertToTarget, 1,
/*101878*/        OPC_EmitNodeXForm, 18, 4, // SSubReg_f16_reg
/*101881*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f16, 2/*#Ops*/, 3, 5, 
                  // Src: (extractelt:{ *:[f16] } DPR:{ *:[v4f16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm_even>>:$lane) - Complexity = 7
                  // Dst: (EXTRACT_SUBREG:{ *:[f16] } (COPY_TO_REGCLASS:{ *:[v2f32] } DPR:{ *:[v4f16] }:$src, DPR_VFP2:{ *:[i32] }), (SSubReg_f16_reg:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm_even>>:$lane))
/*101889*/      /*Scope*/ 49, /*->101939*/
/*101890*/        OPC_CheckPredicate, 91, // Predicate_imm_odd
/*101892*/        OPC_MoveParent,
/*101893*/        OPC_CheckType, MVT::f16,
/*101895*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*101897*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*101900*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*101908*/        OPC_EmitConvertToTarget, 1,
/*101910*/        OPC_EmitNodeXForm, 18, 4, // SSubReg_f16_reg
/*101913*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*101921*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVH), 0,
                      MVT::f32, 1/*#Ops*/, 6,  // Results = #7
/*101928*/        OPC_EmitInteger, MVT::i32, ARM::HPRRegClassID,
/*101931*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f16, 2/*#Ops*/, 7, 8, 
                  // Src: (extractelt:{ *:[f16] } DPR:{ *:[v4f16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm_odd>>:$lane) - Complexity = 7
                  // Dst: (COPY_TO_REGCLASS:{ *:[f16] } (VMOVH:{ *:[f32] } (EXTRACT_SUBREG:{ *:[f32] } (COPY_TO_REGCLASS:{ *:[v2f32] } DPR:{ *:[v4f16] }:$src, DPR_VFP2:{ *:[i32] }), (SSubReg_f16_reg:{ *:[i32] } (imm:{ *:[i32] })<<P:Predicate_imm_odd>>:$lane))), HPR:{ *:[i32] })
/*101939*/      0, /*End of Scope*/
/*101940*/    /*Scope*/ 42, /*->101983*/
/*101941*/      OPC_RecordChild1, // #1 = $src2
/*101942*/      OPC_MoveChild1,
/*101943*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101946*/      OPC_MoveParent,
/*101947*/      OPC_CheckType, MVT::f64,
/*101949*/      OPC_Scope, 15, /*->101966*/ // 2 children in Scope
/*101951*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*101953*/        OPC_EmitConvertToTarget, 1,
/*101955*/        OPC_EmitNodeXForm, 19, 2, // DSubReg_f64_reg
/*101958*/        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))
/*101966*/      /*Scope*/ 15, /*->101982*/
/*101967*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*101969*/        OPC_EmitConvertToTarget, 1,
/*101971*/        OPC_EmitNodeXForm, 19, 2, // DSubReg_f64_reg
/*101974*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f64, 2/*#Ops*/, 0, 3, 
                  // Src: (extractelt:{ *:[f64] } MQPR:{ *:[v2f64] }:$src, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                  // Dst: (EXTRACT_SUBREG:{ *:[f64] } MQPR:{ *:[v2f64] }:$src, (DSubReg_f64_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane))
/*101982*/      0, /*End of Scope*/
/*101983*/    /*Scope*/ 36, /*->102020*/
/*101984*/      OPC_CheckChild0Type, MVT::v2f32,
/*101986*/      OPC_RecordChild1, // #1 = $src2
/*101987*/      OPC_MoveChild1,
/*101988*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101991*/      OPC_MoveParent,
/*101992*/      OPC_CheckType, MVT::f32,
/*101994*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*101996*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*101999*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*102007*/      OPC_EmitConvertToTarget, 1,
/*102009*/      OPC_EmitNodeXForm, 17, 4, // SSubReg_f32_reg
/*102012*/      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))
/*102020*/    /*Scope*/ 66, /*->102087*/
/*102021*/      OPC_CheckChild0Type, MVT::v4f32,
/*102023*/      OPC_RecordChild1, // #1 = $src2
/*102024*/      OPC_MoveChild1,
/*102025*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102028*/      OPC_MoveParent,
/*102029*/      OPC_CheckType, MVT::f32,
/*102031*/      OPC_Scope, 26, /*->102059*/ // 2 children in Scope
/*102033*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*102035*/        OPC_EmitInteger, MVT::i32, ARM::QPR_VFP2RegClassID,
/*102038*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*102046*/        OPC_EmitConvertToTarget, 1,
/*102048*/        OPC_EmitNodeXForm, 17, 4, // SSubReg_f32_reg
/*102051*/        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))
/*102059*/      /*Scope*/ 26, /*->102086*/
/*102060*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*102062*/        OPC_EmitConvertToTarget, 1,
/*102064*/        OPC_EmitNodeXForm, 17, 2, // SSubReg_f32_reg
/*102067*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*102075*/        OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/*102078*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 4, 5, 
                  // Src: (extractelt:{ *:[f32] } MQPR:{ *:[v4f32] }:$src, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                  // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (EXTRACT_SUBREG:{ *:[f32] } MQPR:{ *:[v4f32] }:$src, (SSubReg_f32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)), SPR:{ *:[i32] })
/*102086*/      0, /*End of Scope*/
/*102087*/    0, /*End of Scope*/
/*102088*/  /*SwitchOpcode*/ 85|128,4/*597*/, TARGET_VAL(ISD::FP_TO_SINT),// ->102689
/*102092*/    OPC_Scope, 118|128,1/*246*/, /*->102341*/ // 2 children in Scope
/*102095*/      OPC_MoveChild0,
/*102096*/      OPC_SwitchOpcode /*3 cases */, 78, TARGET_VAL(ISD::FROUND),// ->102178
/*102100*/        OPC_RecordChild0, // #0 = $a
/*102101*/        OPC_SwitchType /*3 cases */, 23, MVT::f16,// ->102127
/*102104*/          OPC_MoveParent,
/*102105*/          OPC_CheckType, MVT::i32,
/*102107*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*102109*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTASH), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102116*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102119*/          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] })
/*102127*/        /*SwitchType*/ 23, MVT::f32,// ->102152
/*102129*/          OPC_MoveParent,
/*102130*/          OPC_CheckType, MVT::i32,
/*102132*/          OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/*102134*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTASS), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102141*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102144*/          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] })
/*102152*/        /*SwitchType*/ 23, MVT::f64,// ->102177
/*102154*/          OPC_MoveParent,
/*102155*/          OPC_CheckType, MVT::i32,
/*102157*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*102159*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTASD), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102166*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102169*/          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] })
/*102177*/        0, // EndSwitchType
/*102178*/      /*SwitchOpcode*/ 78, TARGET_VAL(ISD::FCEIL),// ->102259
/*102181*/        OPC_RecordChild0, // #0 = $a
/*102182*/        OPC_SwitchType /*3 cases */, 23, MVT::f16,// ->102208
/*102185*/          OPC_MoveParent,
/*102186*/          OPC_CheckType, MVT::i32,
/*102188*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*102190*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTPSH), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102197*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102200*/          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] })
/*102208*/        /*SwitchType*/ 23, MVT::f32,// ->102233
/*102210*/          OPC_MoveParent,
/*102211*/          OPC_CheckType, MVT::i32,
/*102213*/          OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/*102215*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTPSS), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102222*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102225*/          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] })
/*102233*/        /*SwitchType*/ 23, MVT::f64,// ->102258
/*102235*/          OPC_MoveParent,
/*102236*/          OPC_CheckType, MVT::i32,
/*102238*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*102240*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTPSD), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102247*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102250*/          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] })
/*102258*/        0, // EndSwitchType
/*102259*/      /*SwitchOpcode*/ 78, TARGET_VAL(ISD::FFLOOR),// ->102340
/*102262*/        OPC_RecordChild0, // #0 = $a
/*102263*/        OPC_SwitchType /*3 cases */, 23, MVT::f16,// ->102289
/*102266*/          OPC_MoveParent,
/*102267*/          OPC_CheckType, MVT::i32,
/*102269*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*102271*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTMSH), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102278*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102281*/          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] })
/*102289*/        /*SwitchType*/ 23, MVT::f32,// ->102314
/*102291*/          OPC_MoveParent,
/*102292*/          OPC_CheckType, MVT::i32,
/*102294*/          OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/*102296*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTMSS), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102303*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102306*/          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] })
/*102314*/        /*SwitchType*/ 23, MVT::f64,// ->102339
/*102316*/          OPC_MoveParent,
/*102317*/          OPC_CheckType, MVT::i32,
/*102319*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*102321*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTMSD), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102328*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102331*/          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] })
/*102339*/        0, // EndSwitchType
/*102340*/      0, // EndSwitchOpcode
/*102341*/    /*Scope*/ 89|128,2/*345*/, /*->102688*/
/*102343*/      OPC_RecordChild0, // #0 = $a
/*102344*/      OPC_SwitchType /*7 cases */, 17|128,1/*145*/, MVT::i32,// ->102493
/*102348*/        OPC_Scope, 30, /*->102380*/ // 3 children in Scope
/*102350*/          OPC_CheckChild0Type, MVT::f64,
/*102352*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*102354*/          OPC_EmitInteger, MVT::i32, 14, 
/*102357*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*102360*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOSIZD), 0,
                        MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/*102369*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102372*/          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] })
/*102380*/        /*Scope*/ 80, /*->102461*/
/*102381*/          OPC_CheckChild0Type, MVT::f32,
/*102383*/          OPC_Scope, 28, /*->102413*/ // 2 children in Scope
/*102385*/            OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*102387*/            OPC_EmitInteger, MVT::i32, 14, 
/*102390*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*102393*/            OPC_EmitNode1, TARGET_VAL(ARM::VTOSIZS), 0,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/*102402*/            OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102405*/            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] })
/*102413*/          /*Scope*/ 46, /*->102460*/
/*102414*/            OPC_CheckPatternPredicate, 83, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/*102416*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #1
/*102422*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*102425*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*102434*/            OPC_EmitInteger, MVT::i32, 14, 
/*102437*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*102440*/            OPC_EmitNode1, TARGET_VAL(ARM::VCVTf2sd), 0,
                          MVT::v2f32, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/*102449*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*102452*/            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] })
/*102460*/          0, /*End of Scope*/
/*102461*/        /*Scope*/ 30, /*->102492*/
/*102462*/          OPC_CheckChild0Type, MVT::f16,
/*102464*/          OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*102466*/          OPC_EmitInteger, MVT::i32, 14, 
/*102469*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*102472*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOSIZH), 0,
                        MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/*102481*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102484*/          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] })
/*102492*/        0, /*End of Scope*/
/*102493*/      /*SwitchType*/ 19, MVT::v2i32,// ->102514
/*102495*/        OPC_CheckChild0Type, MVT::v2f32,
/*102497*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*102499*/        OPC_EmitInteger, MVT::i32, 14, 
/*102502*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*102505*/        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)
/*102514*/      /*SwitchType*/ 47, MVT::v4i32,// ->102563
/*102516*/        OPC_CheckChild0Type, MVT::v4f32,
/*102518*/        OPC_Scope, 17, /*->102537*/ // 2 children in Scope
/*102520*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*102522*/          OPC_EmitInteger, MVT::i32, 14, 
/*102525*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*102528*/          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)
/*102537*/        /*Scope*/ 24, /*->102562*/
/*102538*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*102540*/          OPC_EmitInteger, MVT::i32, 0, 
/*102543*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*102546*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*102552*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCVTs32f32z), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fp_to_sint:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (MVE_VCVTs32f32z:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src)
/*102562*/        0, /*End of Scope*/
/*102563*/      /*SwitchType*/ 19, MVT::v4i16,// ->102584
/*102565*/        OPC_CheckChild0Type, MVT::v4f16,
/*102567*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*102569*/        OPC_EmitInteger, MVT::i32, 14, 
/*102572*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*102575*/        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)
/*102584*/      /*SwitchType*/ 45, MVT::v8i16,// ->102631
/*102586*/        OPC_Scope, 17, /*->102605*/ // 2 children in Scope
/*102588*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*102590*/          OPC_EmitInteger, MVT::i32, 14, 
/*102593*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*102596*/          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)
/*102605*/        /*Scope*/ 24, /*->102630*/
/*102606*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*102608*/          OPC_EmitInteger, MVT::i32, 0, 
/*102611*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*102614*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*102620*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCVTs16f16z), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fp_to_sint:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                    // Dst: (MVE_VCVTs16f16z:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src)
/*102630*/        0, /*End of Scope*/
/*102631*/      /*SwitchType*/ 27, MVT::v4i1,// ->102660
/*102633*/        OPC_CheckChild0Type, MVT::v4f32,
/*102635*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*102637*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*102640*/        OPC_EmitInteger, MVT::i32, 1, 
/*102643*/        OPC_EmitInteger, MVT::i32, 0, 
/*102646*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*102649*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                      MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fp_to_sint:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1) - Complexity = 3
                  // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
/*102660*/      /*SwitchType*/ 25, MVT::v8i1,// ->102687
/*102662*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*102664*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*102667*/        OPC_EmitInteger, MVT::i32, 1, 
/*102670*/        OPC_EmitInteger, MVT::i32, 0, 
/*102673*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*102676*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                      MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fp_to_sint:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1) - Complexity = 3
                  // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
/*102687*/      0, // EndSwitchType
/*102688*/    0, /*End of Scope*/
/*102689*/  /*SwitchOpcode*/ 85|128,4/*597*/, TARGET_VAL(ISD::FP_TO_UINT),// ->103290
/*102693*/    OPC_Scope, 118|128,1/*246*/, /*->102942*/ // 2 children in Scope
/*102696*/      OPC_MoveChild0,
/*102697*/      OPC_SwitchOpcode /*3 cases */, 78, TARGET_VAL(ISD::FROUND),// ->102779
/*102701*/        OPC_RecordChild0, // #0 = $a
/*102702*/        OPC_SwitchType /*3 cases */, 23, MVT::f16,// ->102728
/*102705*/          OPC_MoveParent,
/*102706*/          OPC_CheckType, MVT::i32,
/*102708*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*102710*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTAUH), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102717*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102720*/          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] })
/*102728*/        /*SwitchType*/ 23, MVT::f32,// ->102753
/*102730*/          OPC_MoveParent,
/*102731*/          OPC_CheckType, MVT::i32,
/*102733*/          OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/*102735*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTAUS), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102742*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102745*/          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] })
/*102753*/        /*SwitchType*/ 23, MVT::f64,// ->102778
/*102755*/          OPC_MoveParent,
/*102756*/          OPC_CheckType, MVT::i32,
/*102758*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*102760*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTAUD), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102767*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102770*/          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] })
/*102778*/        0, // EndSwitchType
/*102779*/      /*SwitchOpcode*/ 78, TARGET_VAL(ISD::FCEIL),// ->102860
/*102782*/        OPC_RecordChild0, // #0 = $a
/*102783*/        OPC_SwitchType /*3 cases */, 23, MVT::f16,// ->102809
/*102786*/          OPC_MoveParent,
/*102787*/          OPC_CheckType, MVT::i32,
/*102789*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*102791*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTPUH), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102798*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102801*/          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] })
/*102809*/        /*SwitchType*/ 23, MVT::f32,// ->102834
/*102811*/          OPC_MoveParent,
/*102812*/          OPC_CheckType, MVT::i32,
/*102814*/          OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/*102816*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTPUS), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102823*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102826*/          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] })
/*102834*/        /*SwitchType*/ 23, MVT::f64,// ->102859
/*102836*/          OPC_MoveParent,
/*102837*/          OPC_CheckType, MVT::i32,
/*102839*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*102841*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTPUD), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102848*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102851*/          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] })
/*102859*/        0, // EndSwitchType
/*102860*/      /*SwitchOpcode*/ 78, TARGET_VAL(ISD::FFLOOR),// ->102941
/*102863*/        OPC_RecordChild0, // #0 = $a
/*102864*/        OPC_SwitchType /*3 cases */, 23, MVT::f16,// ->102890
/*102867*/          OPC_MoveParent,
/*102868*/          OPC_CheckType, MVT::i32,
/*102870*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*102872*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTMUH), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102879*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102882*/          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] })
/*102890*/        /*SwitchType*/ 23, MVT::f32,// ->102915
/*102892*/          OPC_MoveParent,
/*102893*/          OPC_CheckType, MVT::i32,
/*102895*/          OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/*102897*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTMUS), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102904*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102907*/          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] })
/*102915*/        /*SwitchType*/ 23, MVT::f64,// ->102940
/*102917*/          OPC_MoveParent,
/*102918*/          OPC_CheckType, MVT::i32,
/*102920*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*102922*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTMUD), 0,
                        MVT::f32, 1/*#Ops*/, 0,  // Results = #1
/*102929*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102932*/          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] })
/*102940*/        0, // EndSwitchType
/*102941*/      0, // EndSwitchOpcode
/*102942*/    /*Scope*/ 89|128,2/*345*/, /*->103289*/
/*102944*/      OPC_RecordChild0, // #0 = $a
/*102945*/      OPC_SwitchType /*7 cases */, 17|128,1/*145*/, MVT::i32,// ->103094
/*102949*/        OPC_Scope, 30, /*->102981*/ // 3 children in Scope
/*102951*/          OPC_CheckChild0Type, MVT::f64,
/*102953*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*102955*/          OPC_EmitInteger, MVT::i32, 14, 
/*102958*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*102961*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOUIZD), 0,
                        MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/*102970*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*102973*/          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] })
/*102981*/        /*Scope*/ 80, /*->103062*/
/*102982*/          OPC_CheckChild0Type, MVT::f32,
/*102984*/          OPC_Scope, 28, /*->103014*/ // 2 children in Scope
/*102986*/            OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*102988*/            OPC_EmitInteger, MVT::i32, 14, 
/*102991*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*102994*/            OPC_EmitNode1, TARGET_VAL(ARM::VTOUIZS), 0,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/*103003*/            OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*103006*/            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] })
/*103014*/          /*Scope*/ 46, /*->103061*/
/*103015*/            OPC_CheckPatternPredicate, 83, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/*103017*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #1
/*103023*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*103026*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*103035*/            OPC_EmitInteger, MVT::i32, 14, 
/*103038*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103041*/            OPC_EmitNode1, TARGET_VAL(ARM::VCVTf2ud), 0,
                          MVT::v2f32, 3/*#Ops*/, 3, 4, 5,  // Results = #6
/*103050*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*103053*/            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] })
/*103061*/          0, /*End of Scope*/
/*103062*/        /*Scope*/ 30, /*->103093*/
/*103063*/          OPC_CheckChild0Type, MVT::f16,
/*103065*/          OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*103067*/          OPC_EmitInteger, MVT::i32, 14, 
/*103070*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103073*/          OPC_EmitNode1, TARGET_VAL(ARM::VTOUIZH), 0,
                        MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/*103082*/          OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*103085*/          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] })
/*103093*/        0, /*End of Scope*/
/*103094*/      /*SwitchType*/ 19, MVT::v2i32,// ->103115
/*103096*/        OPC_CheckChild0Type, MVT::v2f32,
/*103098*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*103100*/        OPC_EmitInteger, MVT::i32, 14, 
/*103103*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103106*/        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)
/*103115*/      /*SwitchType*/ 47, MVT::v4i32,// ->103164
/*103117*/        OPC_CheckChild0Type, MVT::v4f32,
/*103119*/        OPC_Scope, 17, /*->103138*/ // 2 children in Scope
/*103121*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*103123*/          OPC_EmitInteger, MVT::i32, 14, 
/*103126*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103129*/          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)
/*103138*/        /*Scope*/ 24, /*->103163*/
/*103139*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*103141*/          OPC_EmitInteger, MVT::i32, 0, 
/*103144*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103147*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*103153*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCVTu32f32z), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fp_to_uint:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (MVE_VCVTu32f32z:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src)
/*103163*/        0, /*End of Scope*/
/*103164*/      /*SwitchType*/ 19, MVT::v4i16,// ->103185
/*103166*/        OPC_CheckChild0Type, MVT::v4f16,
/*103168*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*103170*/        OPC_EmitInteger, MVT::i32, 14, 
/*103173*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103176*/        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)
/*103185*/      /*SwitchType*/ 45, MVT::v8i16,// ->103232
/*103187*/        OPC_Scope, 17, /*->103206*/ // 2 children in Scope
/*103189*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*103191*/          OPC_EmitInteger, MVT::i32, 14, 
/*103194*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103197*/          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)
/*103206*/        /*Scope*/ 24, /*->103231*/
/*103207*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*103209*/          OPC_EmitInteger, MVT::i32, 0, 
/*103212*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103215*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*103221*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCVTu16f16z), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fp_to_uint:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                    // Dst: (MVE_VCVTu16f16z:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src)
/*103231*/        0, /*End of Scope*/
/*103232*/      /*SwitchType*/ 27, MVT::v4i1,// ->103261
/*103234*/        OPC_CheckChild0Type, MVT::v4f32,
/*103236*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*103238*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*103241*/        OPC_EmitInteger, MVT::i32, 1, 
/*103244*/        OPC_EmitInteger, MVT::i32, 0, 
/*103247*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103250*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                      MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fp_to_uint:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1) - Complexity = 3
                  // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
/*103261*/      /*SwitchType*/ 25, MVT::v8i1,// ->103288
/*103263*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*103265*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*103268*/        OPC_EmitInteger, MVT::i32, 1, 
/*103271*/        OPC_EmitInteger, MVT::i32, 0, 
/*103274*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103277*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                      MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fp_to_uint:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1) - Complexity = 3
                  // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
/*103288*/      0, // EndSwitchType
/*103289*/    0, /*End of Scope*/
/*103290*/  /*SwitchOpcode*/ 110|128,2/*366*/, TARGET_VAL(ISD::Constant),// ->103660
/*103294*/    OPC_RecordNode, // #0 = $imm
/*103295*/    OPC_CheckType, MVT::i32,
/*103297*/    OPC_Scope, 25, /*->103324*/ // 12 children in Scope
/*103299*/      OPC_CheckPredicate, 6, // Predicate_t2_so_imm
/*103301*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*103303*/      OPC_EmitConvertToTarget, 0,
/*103305*/      OPC_EmitInteger, MVT::i32, 14, 
/*103308*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103311*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103314*/      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)
/*103324*/    /*Scope*/ 25, /*->103350*/
/*103325*/      OPC_CheckPredicate, 11, // Predicate_mod_imm
/*103327*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*103329*/      OPC_EmitConvertToTarget, 0,
/*103331*/      OPC_EmitInteger, MVT::i32, 14, 
/*103334*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103337*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103340*/      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)
/*103350*/    /*Scope*/ 21, /*->103372*/
/*103351*/      OPC_CheckPredicate, 56, // Predicate_imm0_65535
/*103353*/      OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/*103355*/      OPC_EmitConvertToTarget, 0,
/*103357*/      OPC_EmitInteger, MVT::i32, 14, 
/*103360*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103363*/      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)
/*103372*/    /*Scope*/ 28, /*->103401*/
/*103373*/      OPC_CheckPredicate, 26, // Predicate_mod_imm_not
/*103375*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*103377*/      OPC_EmitConvertToTarget, 0,
/*103379*/      OPC_EmitNodeXForm, 9, 1, // imm_not_XFORM
/*103382*/      OPC_EmitInteger, MVT::i32, 14, 
/*103385*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103388*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103391*/      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))
/*103401*/    /*Scope*/ 13, /*->103415*/
/*103402*/      OPC_CheckPredicate, 92, // Predicate_arm_i32imm
/*103404*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*103406*/      OPC_EmitConvertToTarget, 0,
/*103408*/      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)
/*103415*/    /*Scope*/ 25, /*->103441*/
/*103416*/      OPC_CheckPredicate, 57, // Predicate_imm0_255
/*103418*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*103420*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*103423*/      OPC_EmitConvertToTarget, 0,
/*103425*/      OPC_EmitInteger, MVT::i32, 14, 
/*103428*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103431*/      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)
/*103441*/    /*Scope*/ 21, /*->103463*/
/*103442*/      OPC_CheckPredicate, 56, // Predicate_imm0_65535
/*103444*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/*103446*/      OPC_EmitConvertToTarget, 0,
/*103448*/      OPC_EmitInteger, MVT::i32, 14, 
/*103451*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103454*/      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)
/*103463*/    /*Scope*/ 28, /*->103492*/
/*103464*/      OPC_CheckPredicate, 12, // Predicate_t2_so_imm_not
/*103466*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*103468*/      OPC_EmitConvertToTarget, 0,
/*103470*/      OPC_EmitNodeXForm, 1, 1, // t2_so_imm_not_XFORM
/*103473*/      OPC_EmitInteger, MVT::i32, 14, 
/*103476*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103479*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103482*/      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))
/*103492*/    /*Scope*/ 53, /*->103546*/
/*103493*/      OPC_CheckPredicate, 93, // Predicate_thumb_immshifted
/*103495*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*103497*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*103500*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*103503*/      OPC_EmitConvertToTarget, 0,
/*103505*/      OPC_EmitNodeXForm, 20, 3, // thumb_immshifted_val
/*103508*/      OPC_EmitInteger, MVT::i32, 14, 
/*103511*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103514*/      OPC_EmitNode1, TARGET_VAL(ARM::tMOVi8), 0,
                    MVT::i32, 4/*#Ops*/, 2, 4, 5, 6,  // Results = #7
/*103524*/      OPC_EmitConvertToTarget, 0,
/*103526*/      OPC_EmitNodeXForm, 21, 8, // thumb_immshifted_shamt
/*103529*/      OPC_EmitInteger, MVT::i32, 14, 
/*103532*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103535*/      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))
/*103546*/    /*Scope*/ 47, /*->103594*/
/*103547*/      OPC_CheckPredicate, 94, // Predicate_imm0_255_comp
/*103549*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*103551*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*103554*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*103557*/      OPC_EmitConvertToTarget, 0,
/*103559*/      OPC_EmitNodeXForm, 9, 3, // imm_not_XFORM
/*103562*/      OPC_EmitInteger, MVT::i32, 14, 
/*103565*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103568*/      OPC_EmitNode1, TARGET_VAL(ARM::tMOVi8), 0,
                    MVT::i32, 4/*#Ops*/, 2, 4, 5, 6,  // Results = #7
/*103578*/      OPC_EmitInteger, MVT::i32, 14, 
/*103581*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103584*/      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)))
/*103594*/    /*Scope*/ 52, /*->103647*/
/*103595*/      OPC_CheckPredicate, 95, // Predicate_imm256_510
/*103597*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*103599*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*103602*/      OPC_EmitRegister, MVT::i32, ARM::CPSR,
/*103605*/      OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/*103609*/      OPC_EmitInteger, MVT::i32, 14, 
/*103612*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103615*/      OPC_EmitNode1, TARGET_VAL(ARM::tMOVi8), 0,
                    MVT::i32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/*103625*/      OPC_EmitConvertToTarget, 0,
/*103627*/      OPC_EmitNodeXForm, 22, 7, // thumb_imm256_510_addend
/*103630*/      OPC_EmitInteger, MVT::i32, 14, 
/*103633*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103636*/      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))
/*103647*/    /*Scope*/ 11, /*->103659*/
/*103648*/      OPC_CheckPatternPredicate, 84, // (Subtarget->isThumb()) && (Subtarget->useMovt())
/*103650*/      OPC_EmitConvertToTarget, 0,
/*103652*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2MOVi32imm), 0,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (imm:{ *:[i32] }):$src - Complexity = 3
                // Dst: (t2MOVi32imm:{ *:[i32] } (imm:{ *:[i32] }):$src)
/*103659*/    0, /*End of Scope*/
/*103660*/  /*SwitchOpcode*/ 30, TARGET_VAL(ISD::TRAP),// ->103693
/*103663*/    OPC_RecordNode, // #0 = 'trap' chained node
/*103664*/    OPC_Scope, 8, /*->103674*/ // 3 children in Scope
/*103666*/      OPC_CheckPatternPredicate, 85, // (!Subtarget->isThumb()) && (Subtarget->useNaClTrap())
/*103668*/      OPC_EmitMergeInputChains1_0,
/*103669*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::TRAPNaCl), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (trap) - Complexity = 3
                // Dst: (TRAPNaCl)
/*103674*/    /*Scope*/ 8, /*->103683*/
/*103675*/      OPC_CheckPatternPredicate, 86, // (!Subtarget->useNaClTrap()) && (!Subtarget->isThumb())
/*103677*/      OPC_EmitMergeInputChains1_0,
/*103678*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::TRAP), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (trap) - Complexity = 3
                // Dst: (TRAP)
/*103683*/    /*Scope*/ 8, /*->103692*/
/*103684*/      OPC_CheckPatternPredicate, 46, // (Subtarget->isThumb())
/*103686*/      OPC_EmitMergeInputChains1_0,
/*103687*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::tTRAP), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (trap) - Complexity = 3
                // Dst: (tTRAP)
/*103692*/    0, /*End of Scope*/
/*103693*/  /*SwitchOpcode*/ 57, TARGET_VAL(ISD::DEBUGTRAP),// ->103753
/*103696*/    OPC_RecordNode, // #0 = 'debugtrap' chained node
/*103697*/    OPC_Scope, 12, /*->103711*/ // 4 children in Scope
/*103699*/      OPC_CheckPatternPredicate, 63, // (Subtarget->hasV5TOps()) && (!Subtarget->isThumb())
/*103701*/      OPC_EmitMergeInputChains1_0,
/*103702*/      OPC_EmitInteger, MVT::i32, 0, 
/*103705*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::BKPT), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (debugtrap) - Complexity = 3
                // Dst: (BKPT 0:{ *:[i32] })
/*103711*/    /*Scope*/ 13, /*->103725*/
/*103712*/      OPC_CheckPatternPredicate, 87, // (!Subtarget->isThumb()) && (!Subtarget->hasV5TOps())
/*103714*/      OPC_EmitMergeInputChains1_0,
/*103715*/      OPC_EmitInteger, MVT::i32, 126|128,1/*254*/, 
/*103719*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::UDF), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (debugtrap) - Complexity = 3
                // Dst: (UDF 254:{ *:[i32] })
/*103725*/    /*Scope*/ 12, /*->103738*/
/*103726*/      OPC_CheckPatternPredicate, 68, // (Subtarget->hasV5TOps()) && (Subtarget->isThumb())
/*103728*/      OPC_EmitMergeInputChains1_0,
/*103729*/      OPC_EmitInteger, MVT::i32, 0, 
/*103732*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::tBKPT), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (debugtrap) - Complexity = 3
                // Dst: (tBKPT 0:{ *:[i32] })
/*103738*/    /*Scope*/ 13, /*->103752*/
/*103739*/      OPC_CheckPatternPredicate, 88, // (Subtarget->isThumb()) && (!Subtarget->hasV5TOps())
/*103741*/      OPC_EmitMergeInputChains1_0,
/*103742*/      OPC_EmitInteger, MVT::i32, 126|128,1/*254*/, 
/*103746*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::tUDF), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (debugtrap) - Complexity = 3
                // Dst: (tUDF 254:{ *:[i32] })
/*103752*/    0, /*End of Scope*/
/*103753*/  /*SwitchOpcode*/ 55, TARGET_VAL(ARMISD::RET_FLAG),// ->103811
/*103756*/    OPC_RecordNode, // #0 = 'ARMretflag' chained node
/*103757*/    OPC_CaptureGlueInput,
/*103758*/    OPC_Scope, 16, /*->103776*/ // 3 children in Scope
/*103760*/      OPC_CheckPatternPredicate, 69, // (Subtarget->hasV4TOps()) && (!Subtarget->isThumb())
/*103762*/      OPC_EmitMergeInputChains1_0,
/*103763*/      OPC_EmitInteger, MVT::i32, 14, 
/*103766*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103769*/      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)
/*103776*/    /*Scope*/ 16, /*->103793*/
/*103777*/      OPC_CheckPatternPredicate, 70, // (!Subtarget->isThumb()) && (!Subtarget->hasV4TOps())
/*103779*/      OPC_EmitMergeInputChains1_0,
/*103780*/      OPC_EmitInteger, MVT::i32, 14, 
/*103783*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103786*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::MOVPCLR), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
                    2/*#Ops*/, 1, 2, 
                // Src: (ARMretflag) - Complexity = 3
                // Dst: (MOVPCLR)
/*103793*/    /*Scope*/ 16, /*->103810*/
/*103794*/      OPC_CheckPatternPredicate, 46, // (Subtarget->isThumb())
/*103796*/      OPC_EmitMergeInputChains1_0,
/*103797*/      OPC_EmitInteger, MVT::i32, 14, 
/*103800*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103803*/      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)
/*103810*/    0, /*End of Scope*/
/*103811*/  /*SwitchOpcode*/ 44, TARGET_VAL(ISD::BRIND),// ->103858
/*103814*/    OPC_RecordNode, // #0 = 'brind' chained node
/*103815*/    OPC_RecordChild1, // #1 = $dst
/*103816*/    OPC_CheckChild1Type, MVT::i32,
/*103818*/    OPC_Scope, 9, /*->103829*/ // 3 children in Scope
/*103820*/      OPC_CheckPatternPredicate, 69, // (Subtarget->hasV4TOps()) && (!Subtarget->isThumb())
/*103822*/      OPC_EmitMergeInputChains1_0,
/*103823*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::BX), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (brind GPR:{ *:[i32] }:$dst) - Complexity = 3
                // Dst: (BX GPR:{ *:[i32] }:$dst)
/*103829*/    /*Scope*/ 9, /*->103839*/
/*103830*/      OPC_CheckPatternPredicate, 70, // (!Subtarget->isThumb()) && (!Subtarget->hasV4TOps())
/*103832*/      OPC_EmitMergeInputChains1_0,
/*103833*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::MOVPCRX), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (brind GPR:{ *:[i32] }:$dst) - Complexity = 3
                // Dst: (MOVPCRX GPR:{ *:[i32] }:$dst)
/*103839*/    /*Scope*/ 17, /*->103857*/
/*103840*/      OPC_CheckPatternPredicate, 46, // (Subtarget->isThumb())
/*103842*/      OPC_EmitMergeInputChains1_0,
/*103843*/      OPC_EmitInteger, MVT::i32, 14, 
/*103846*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103849*/      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)
/*103857*/    0, /*End of Scope*/
/*103858*/  /*SwitchOpcode*/ 55, TARGET_VAL(ISD::BR),// ->103916
/*103861*/    OPC_RecordNode, // #0 = 'br' chained node
/*103862*/    OPC_RecordChild1, // #1 = $target
/*103863*/    OPC_MoveChild1,
/*103864*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/*103867*/    OPC_MoveParent,
/*103868*/    OPC_Scope, 9, /*->103879*/ // 3 children in Scope
/*103870*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*103872*/      OPC_EmitMergeInputChains1_0,
/*103873*/      OPC_MorphNodeTo0, TARGET_VAL(ARM::B), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (br (bb:{ *:[Other] }):$target) - Complexity = 3
                // Dst: (B (bb:{ *:[Other] }):$target)
/*103879*/    /*Scope*/ 17, /*->103897*/
/*103880*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*103882*/      OPC_EmitMergeInputChains1_0,
/*103883*/      OPC_EmitInteger, MVT::i32, 14, 
/*103886*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103889*/      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)
/*103897*/    /*Scope*/ 17, /*->103915*/
/*103898*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/*103900*/      OPC_EmitMergeInputChains1_0,
/*103901*/      OPC_EmitInteger, MVT::i32, 14, 
/*103904*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103907*/      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)
/*103915*/    0, /*End of Scope*/
/*103916*/  /*SwitchOpcode*/ 38, TARGET_VAL(ARMISD::RRX),// ->103957
/*103919*/    OPC_CaptureGlueInput,
/*103920*/    OPC_RecordChild0, // #0 = $Rm
/*103921*/    OPC_CheckType, MVT::i32,
/*103923*/    OPC_Scope, 9, /*->103934*/ // 2 children in Scope
/*103925*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*103927*/      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)
/*103934*/    /*Scope*/ 21, /*->103956*/
/*103935*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*103937*/      OPC_EmitInteger, MVT::i32, 14, 
/*103940*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103943*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103946*/      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)
/*103956*/    0, /*End of Scope*/
/*103957*/  /*SwitchOpcode*/ 35, TARGET_VAL(ARMISD::SRL_FLAG),// ->103995
/*103960*/    OPC_RecordChild0, // #0 = $src
/*103961*/    OPC_CheckType, MVT::i32,
/*103963*/    OPC_Scope, 10, /*->103975*/ // 2 children in Scope
/*103965*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*103967*/      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)
/*103975*/    /*Scope*/ 18, /*->103994*/
/*103976*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*103978*/      OPC_EmitInteger, MVT::i32, 14, 
/*103981*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*103984*/      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)
/*103994*/    0, /*End of Scope*/
/*103995*/  /*SwitchOpcode*/ 35, TARGET_VAL(ARMISD::SRA_FLAG),// ->104033
/*103998*/    OPC_RecordChild0, // #0 = $src
/*103999*/    OPC_CheckType, MVT::i32,
/*104001*/    OPC_Scope, 10, /*->104013*/ // 2 children in Scope
/*104003*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*104005*/      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)
/*104013*/    /*Scope*/ 18, /*->104032*/
/*104014*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*104016*/      OPC_EmitInteger, MVT::i32, 14, 
/*104019*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104022*/      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)
/*104032*/    0, /*End of Scope*/
/*104033*/  /*SwitchOpcode*/ 42, TARGET_VAL(ARMISD::QADD8b),// ->104078
/*104036*/    OPC_RecordChild0, // #0 = $Rm
/*104037*/    OPC_RecordChild1, // #1 = $Rn
/*104038*/    OPC_Scope, 18, /*->104058*/ // 2 children in Scope
/*104040*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*104042*/      OPC_EmitInteger, MVT::i32, 14, 
/*104045*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104048*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::QADD8), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMqadd8b:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) - Complexity = 3
                // Dst: (QADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/*104058*/    /*Scope*/ 18, /*->104077*/
/*104059*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104061*/      OPC_EmitInteger, MVT::i32, 14, 
/*104064*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104067*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QADD8), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMqadd8b:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) - Complexity = 3
                // Dst: (t2QADD8:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/*104077*/    0, /*End of Scope*/
/*104078*/  /*SwitchOpcode*/ 42, TARGET_VAL(ARMISD::QSUB8b),// ->104123
/*104081*/    OPC_RecordChild0, // #0 = $Rm
/*104082*/    OPC_RecordChild1, // #1 = $Rn
/*104083*/    OPC_Scope, 18, /*->104103*/ // 2 children in Scope
/*104085*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*104087*/      OPC_EmitInteger, MVT::i32, 14, 
/*104090*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104093*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::QSUB8), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMqsub8b:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) - Complexity = 3
                // Dst: (QSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/*104103*/    /*Scope*/ 18, /*->104122*/
/*104104*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104106*/      OPC_EmitInteger, MVT::i32, 14, 
/*104109*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104112*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QSUB8), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMqsub8b:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) - Complexity = 3
                // Dst: (t2QSUB8:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/*104122*/    0, /*End of Scope*/
/*104123*/  /*SwitchOpcode*/ 42, TARGET_VAL(ARMISD::QADD16b),// ->104168
/*104126*/    OPC_RecordChild0, // #0 = $Rm
/*104127*/    OPC_RecordChild1, // #1 = $Rn
/*104128*/    OPC_Scope, 18, /*->104148*/ // 2 children in Scope
/*104130*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*104132*/      OPC_EmitInteger, MVT::i32, 14, 
/*104135*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104138*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::QADD16), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMqadd16b:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) - Complexity = 3
                // Dst: (QADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/*104148*/    /*Scope*/ 18, /*->104167*/
/*104149*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104151*/      OPC_EmitInteger, MVT::i32, 14, 
/*104154*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104157*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QADD16), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMqadd16b:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) - Complexity = 3
                // Dst: (t2QADD16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/*104167*/    0, /*End of Scope*/
/*104168*/  /*SwitchOpcode*/ 42, TARGET_VAL(ARMISD::QSUB16b),// ->104213
/*104171*/    OPC_RecordChild0, // #0 = $Rm
/*104172*/    OPC_RecordChild1, // #1 = $Rn
/*104173*/    OPC_Scope, 18, /*->104193*/ // 2 children in Scope
/*104175*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*104177*/      OPC_EmitInteger, MVT::i32, 14, 
/*104180*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104183*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::QSUB16), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMqsub16b:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) - Complexity = 3
                // Dst: (QSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/*104193*/    /*Scope*/ 18, /*->104212*/
/*104194*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104196*/      OPC_EmitInteger, MVT::i32, 14, 
/*104199*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104202*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::t2QSUB16), 0,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ARMqsub16b:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn) - Complexity = 3
                // Dst: (t2QSUB16:{ *:[i32] } rGPR:{ *:[i32] }:$Rm, rGPR:{ *:[i32] }:$Rn)
/*104212*/    0, /*End of Scope*/
/*104213*/  /*SwitchOpcode*/ 74, TARGET_VAL(ISD::SMUL_LOHI),// ->104290
/*104216*/    OPC_RecordChild0, // #0 = $Rn
/*104217*/    OPC_RecordChild1, // #1 = $Rm
/*104218*/    OPC_CheckType, MVT::i32,
/*104220*/    OPC_Scope, 23, /*->104245*/ // 3 children in Scope
/*104222*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*104224*/      OPC_EmitInteger, MVT::i32, 14, 
/*104227*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104230*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104233*/      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)
/*104245*/    /*Scope*/ 23, /*->104269*/
/*104246*/      OPC_CheckPatternPredicate, 13, // (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops())
/*104248*/      OPC_EmitInteger, MVT::i32, 14, 
/*104251*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104254*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104257*/      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)
/*104269*/    /*Scope*/ 19, /*->104289*/
/*104270*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*104272*/      OPC_EmitInteger, MVT::i32, 14, 
/*104275*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104278*/      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)
/*104289*/    0, /*End of Scope*/
/*104290*/  /*SwitchOpcode*/ 74, TARGET_VAL(ISD::UMUL_LOHI),// ->104367
/*104293*/    OPC_RecordChild0, // #0 = $Rn
/*104294*/    OPC_RecordChild1, // #1 = $Rm
/*104295*/    OPC_CheckType, MVT::i32,
/*104297*/    OPC_Scope, 23, /*->104322*/ // 3 children in Scope
/*104299*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*104301*/      OPC_EmitInteger, MVT::i32, 14, 
/*104304*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104307*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104310*/      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)
/*104322*/    /*Scope*/ 23, /*->104346*/
/*104323*/      OPC_CheckPatternPredicate, 13, // (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops())
/*104325*/      OPC_EmitInteger, MVT::i32, 14, 
/*104328*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104331*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104334*/      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)
/*104346*/    /*Scope*/ 19, /*->104366*/
/*104347*/      OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*104349*/      OPC_EmitInteger, MVT::i32, 14, 
/*104352*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104355*/      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)
/*104366*/    0, /*End of Scope*/
/*104367*/  /*SwitchOpcode*/ 44, TARGET_VAL(ISD::MULHS),// ->104414
/*104370*/    OPC_RecordChild0, // #0 = $Rn
/*104371*/    OPC_RecordChild1, // #1 = $Rm
/*104372*/    OPC_CheckType, MVT::i32,
/*104374*/    OPC_Scope, 18, /*->104394*/ // 2 children in Scope
/*104376*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*104378*/      OPC_EmitInteger, MVT::i32, 14, 
/*104381*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104384*/      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)
/*104394*/    /*Scope*/ 18, /*->104413*/
/*104395*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104397*/      OPC_EmitInteger, MVT::i32, 14, 
/*104400*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104403*/      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)
/*104413*/    0, /*End of Scope*/
/*104414*/  /*SwitchOpcode*/ 45, TARGET_VAL(ARMISD::SMMLSR),// ->104462
/*104417*/    OPC_RecordChild0, // #0 = $Rn
/*104418*/    OPC_RecordChild1, // #1 = $Rm
/*104419*/    OPC_RecordChild2, // #2 = $Ra
/*104420*/    OPC_Scope, 19, /*->104441*/ // 2 children in Scope
/*104422*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*104424*/      OPC_EmitInteger, MVT::i32, 14, 
/*104427*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104430*/      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)
/*104441*/    /*Scope*/ 19, /*->104461*/
/*104442*/      OPC_CheckPatternPredicate, 10, // (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps())
/*104444*/      OPC_EmitInteger, MVT::i32, 14, 
/*104447*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104450*/      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)
/*104461*/    0, /*End of Scope*/
/*104462*/  /*SwitchOpcode*/ 44, TARGET_VAL(ARMISD::SMULWB),// ->104509
/*104465*/    OPC_RecordChild0, // #0 = $Rn
/*104466*/    OPC_RecordChild1, // #1 = $Rm
/*104467*/    OPC_CheckType, MVT::i32,
/*104469*/    OPC_Scope, 18, /*->104489*/ // 2 children in Scope
/*104471*/      OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/*104473*/      OPC_EmitInteger, MVT::i32, 14, 
/*104476*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104479*/      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)
/*104489*/    /*Scope*/ 18, /*->104508*/
/*104490*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104492*/      OPC_EmitInteger, MVT::i32, 14, 
/*104495*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104498*/      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)
/*104508*/    0, /*End of Scope*/
/*104509*/  /*SwitchOpcode*/ 44, TARGET_VAL(ARMISD::SMULWT),// ->104556
/*104512*/    OPC_RecordChild0, // #0 = $Rn
/*104513*/    OPC_RecordChild1, // #1 = $Rm
/*104514*/    OPC_CheckType, MVT::i32,
/*104516*/    OPC_Scope, 18, /*->104536*/ // 2 children in Scope
/*104518*/      OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/*104520*/      OPC_EmitInteger, MVT::i32, 14, 
/*104523*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104526*/      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)
/*104536*/    /*Scope*/ 18, /*->104555*/
/*104537*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104539*/      OPC_EmitInteger, MVT::i32, 14, 
/*104542*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104545*/      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)
/*104555*/    0, /*End of Scope*/
/*104556*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLALBB),// ->104609
/*104559*/    OPC_RecordChild0, // #0 = $Rn
/*104560*/    OPC_RecordChild1, // #1 = $Rm
/*104561*/    OPC_RecordChild2, // #2 = $RLo
/*104562*/    OPC_RecordChild3, // #3 = $RHi
/*104563*/    OPC_Scope, 21, /*->104586*/ // 2 children in Scope
/*104565*/      OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/*104567*/      OPC_EmitInteger, MVT::i32, 14, 
/*104570*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104573*/      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)
/*104586*/    /*Scope*/ 21, /*->104608*/
/*104587*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104589*/      OPC_EmitInteger, MVT::i32, 14, 
/*104592*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104595*/      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)
/*104608*/    0, /*End of Scope*/
/*104609*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLALBT),// ->104662
/*104612*/    OPC_RecordChild0, // #0 = $Rn
/*104613*/    OPC_RecordChild1, // #1 = $Rm
/*104614*/    OPC_RecordChild2, // #2 = $RLo
/*104615*/    OPC_RecordChild3, // #3 = $RHi
/*104616*/    OPC_Scope, 21, /*->104639*/ // 2 children in Scope
/*104618*/      OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/*104620*/      OPC_EmitInteger, MVT::i32, 14, 
/*104623*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104626*/      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)
/*104639*/    /*Scope*/ 21, /*->104661*/
/*104640*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104642*/      OPC_EmitInteger, MVT::i32, 14, 
/*104645*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104648*/      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)
/*104661*/    0, /*End of Scope*/
/*104662*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLALTB),// ->104715
/*104665*/    OPC_RecordChild0, // #0 = $Rn
/*104666*/    OPC_RecordChild1, // #1 = $Rm
/*104667*/    OPC_RecordChild2, // #2 = $RLo
/*104668*/    OPC_RecordChild3, // #3 = $RHi
/*104669*/    OPC_Scope, 21, /*->104692*/ // 2 children in Scope
/*104671*/      OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/*104673*/      OPC_EmitInteger, MVT::i32, 14, 
/*104676*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104679*/      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)
/*104692*/    /*Scope*/ 21, /*->104714*/
/*104693*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104695*/      OPC_EmitInteger, MVT::i32, 14, 
/*104698*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104701*/      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)
/*104714*/    0, /*End of Scope*/
/*104715*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLALTT),// ->104768
/*104718*/    OPC_RecordChild0, // #0 = $Rn
/*104719*/    OPC_RecordChild1, // #1 = $Rm
/*104720*/    OPC_RecordChild2, // #2 = $RLo
/*104721*/    OPC_RecordChild3, // #3 = $RHi
/*104722*/    OPC_Scope, 21, /*->104745*/ // 2 children in Scope
/*104724*/      OPC_CheckPatternPredicate, 21, // (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb())
/*104726*/      OPC_EmitInteger, MVT::i32, 14, 
/*104729*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104732*/      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)
/*104745*/    /*Scope*/ 21, /*->104767*/
/*104746*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104748*/      OPC_EmitInteger, MVT::i32, 14, 
/*104751*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104754*/      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)
/*104767*/    0, /*End of Scope*/
/*104768*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLALD),// ->104821
/*104771*/    OPC_RecordChild0, // #0 = $Rn
/*104772*/    OPC_RecordChild1, // #1 = $Rm
/*104773*/    OPC_RecordChild2, // #2 = $RLo
/*104774*/    OPC_RecordChild3, // #3 = $RHi
/*104775*/    OPC_Scope, 21, /*->104798*/ // 2 children in Scope
/*104777*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*104779*/      OPC_EmitInteger, MVT::i32, 14, 
/*104782*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104785*/      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)
/*104798*/    /*Scope*/ 21, /*->104820*/
/*104799*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104801*/      OPC_EmitInteger, MVT::i32, 14, 
/*104804*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104807*/      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)
/*104820*/    0, /*End of Scope*/
/*104821*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLALDX),// ->104874
/*104824*/    OPC_RecordChild0, // #0 = $Rn
/*104825*/    OPC_RecordChild1, // #1 = $Rm
/*104826*/    OPC_RecordChild2, // #2 = $RLo
/*104827*/    OPC_RecordChild3, // #3 = $RHi
/*104828*/    OPC_Scope, 21, /*->104851*/ // 2 children in Scope
/*104830*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*104832*/      OPC_EmitInteger, MVT::i32, 14, 
/*104835*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104838*/      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)
/*104851*/    /*Scope*/ 21, /*->104873*/
/*104852*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104854*/      OPC_EmitInteger, MVT::i32, 14, 
/*104857*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104860*/      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)
/*104873*/    0, /*End of Scope*/
/*104874*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLSLD),// ->104927
/*104877*/    OPC_RecordChild0, // #0 = $Rn
/*104878*/    OPC_RecordChild1, // #1 = $Rm
/*104879*/    OPC_RecordChild2, // #2 = $RLo
/*104880*/    OPC_RecordChild3, // #3 = $RHi
/*104881*/    OPC_Scope, 21, /*->104904*/ // 2 children in Scope
/*104883*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*104885*/      OPC_EmitInteger, MVT::i32, 14, 
/*104888*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104891*/      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)
/*104904*/    /*Scope*/ 21, /*->104926*/
/*104905*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104907*/      OPC_EmitInteger, MVT::i32, 14, 
/*104910*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104913*/      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)
/*104926*/    0, /*End of Scope*/
/*104927*/  /*SwitchOpcode*/ 50, TARGET_VAL(ARMISD::SMLSLDX),// ->104980
/*104930*/    OPC_RecordChild0, // #0 = $Rn
/*104931*/    OPC_RecordChild1, // #1 = $Rm
/*104932*/    OPC_RecordChild2, // #2 = $RLo
/*104933*/    OPC_RecordChild3, // #3 = $RHi
/*104934*/    OPC_Scope, 21, /*->104957*/ // 2 children in Scope
/*104936*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*104938*/      OPC_EmitInteger, MVT::i32, 14, 
/*104941*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104944*/      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)
/*104957*/    /*Scope*/ 21, /*->104979*/
/*104958*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasDSP()) && (Subtarget->isThumb2())
/*104960*/      OPC_EmitInteger, MVT::i32, 14, 
/*104963*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104966*/      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)
/*104979*/    0, /*End of Scope*/
/*104980*/  /*SwitchOpcode*/ 44, TARGET_VAL(ISD::SDIV),// ->105027
/*104983*/    OPC_RecordChild0, // #0 = $Rn
/*104984*/    OPC_RecordChild1, // #1 = $Rm
/*104985*/    OPC_CheckType, MVT::i32,
/*104987*/    OPC_Scope, 18, /*->105007*/ // 2 children in Scope
/*104989*/      OPC_CheckPatternPredicate, 89, // (Subtarget->hasDivideInARMMode()) && (!Subtarget->isThumb())
/*104991*/      OPC_EmitInteger, MVT::i32, 14, 
/*104994*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*104997*/      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)
/*105007*/    /*Scope*/ 18, /*->105026*/
/*105008*/      OPC_CheckPatternPredicate, 90, // (Subtarget->hasDivideInThumbMode()) && (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/*105010*/      OPC_EmitInteger, MVT::i32, 14, 
/*105013*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105016*/      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)
/*105026*/    0, /*End of Scope*/
/*105027*/  /*SwitchOpcode*/ 44, TARGET_VAL(ISD::UDIV),// ->105074
/*105030*/    OPC_RecordChild0, // #0 = $Rn
/*105031*/    OPC_RecordChild1, // #1 = $Rm
/*105032*/    OPC_CheckType, MVT::i32,
/*105034*/    OPC_Scope, 18, /*->105054*/ // 2 children in Scope
/*105036*/      OPC_CheckPatternPredicate, 89, // (Subtarget->hasDivideInARMMode()) && (!Subtarget->isThumb())
/*105038*/      OPC_EmitInteger, MVT::i32, 14, 
/*105041*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105044*/      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)
/*105054*/    /*Scope*/ 18, /*->105073*/
/*105055*/      OPC_CheckPatternPredicate, 90, // (Subtarget->hasDivideInThumbMode()) && (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb())
/*105057*/      OPC_EmitInteger, MVT::i32, 14, 
/*105060*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105063*/      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)
/*105073*/    0, /*End of Scope*/
/*105074*/  /*SwitchOpcode*/ 127|128,1/*255*/, TARGET_VAL(ISD::CTLZ),// ->105333
/*105078*/    OPC_RecordChild0, // #0 = $Rm
/*105079*/    OPC_SwitchType /*7 cases */, 40, MVT::i32,// ->105122
/*105082*/      OPC_CheckChild0Type, MVT::i32,
/*105084*/      OPC_Scope, 17, /*->105103*/ // 2 children in Scope
/*105086*/        OPC_CheckPatternPredicate, 63, // (Subtarget->hasV5TOps()) && (!Subtarget->isThumb())
/*105088*/        OPC_EmitInteger, MVT::i32, 14, 
/*105091*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105094*/        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)
/*105103*/      /*Scope*/ 17, /*->105121*/
/*105104*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*105106*/        OPC_EmitInteger, MVT::i32, 14, 
/*105109*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105112*/        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)
/*105121*/      0, /*End of Scope*/
/*105122*/    /*SwitchType*/ 19, MVT::v8i8,// ->105143
/*105124*/      OPC_CheckChild0Type, MVT::v8i8,
/*105126*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*105128*/      OPC_EmitInteger, MVT::i32, 14, 
/*105131*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105134*/      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)
/*105143*/    /*SwitchType*/ 19, MVT::v4i16,// ->105164
/*105145*/      OPC_CheckChild0Type, MVT::v4i16,
/*105147*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*105149*/      OPC_EmitInteger, MVT::i32, 14, 
/*105152*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105155*/      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)
/*105164*/    /*SwitchType*/ 19, MVT::v2i32,// ->105185
/*105166*/      OPC_CheckChild0Type, MVT::v2i32,
/*105168*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*105170*/      OPC_EmitInteger, MVT::i32, 14, 
/*105173*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105176*/      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)
/*105185*/    /*SwitchType*/ 47, MVT::v16i8,// ->105234
/*105187*/      OPC_CheckChild0Type, MVT::v16i8,
/*105189*/      OPC_Scope, 17, /*->105208*/ // 2 children in Scope
/*105191*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*105193*/        OPC_EmitInteger, MVT::i32, 14, 
/*105196*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105199*/        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)
/*105208*/      /*Scope*/ 24, /*->105233*/
/*105209*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*105211*/        OPC_EmitInteger, MVT::i32, 0, 
/*105214*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105217*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*105223*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCLZs8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ctlz:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1) - Complexity = 3
                  // Dst: (MVE_VCLZs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1)
/*105233*/      0, /*End of Scope*/
/*105234*/    /*SwitchType*/ 47, MVT::v8i16,// ->105283
/*105236*/      OPC_CheckChild0Type, MVT::v8i16,
/*105238*/      OPC_Scope, 17, /*->105257*/ // 2 children in Scope
/*105240*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*105242*/        OPC_EmitInteger, MVT::i32, 14, 
/*105245*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105248*/        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)
/*105257*/      /*Scope*/ 24, /*->105282*/
/*105258*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*105260*/        OPC_EmitInteger, MVT::i32, 0, 
/*105263*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105266*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*105272*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCLZs16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ctlz:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1) - Complexity = 3
                  // Dst: (MVE_VCLZs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1)
/*105282*/      0, /*End of Scope*/
/*105283*/    /*SwitchType*/ 47, MVT::v4i32,// ->105332
/*105285*/      OPC_CheckChild0Type, MVT::v4i32,
/*105287*/      OPC_Scope, 17, /*->105306*/ // 2 children in Scope
/*105289*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*105291*/        OPC_EmitInteger, MVT::i32, 14, 
/*105294*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105297*/        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)
/*105306*/      /*Scope*/ 24, /*->105331*/
/*105307*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*105309*/        OPC_EmitInteger, MVT::i32, 0, 
/*105312*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105315*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*105321*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCLZs32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ctlz:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1) - Complexity = 3
                  // Dst: (MVE_VCLZs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1)
/*105331*/      0, /*End of Scope*/
/*105332*/    0, // EndSwitchType
/*105333*/  /*SwitchOpcode*/ 62|128,1/*190*/, TARGET_VAL(ISD::BITREVERSE),// ->105527
/*105337*/    OPC_RecordChild0, // #0 = $Rm
/*105338*/    OPC_SwitchType /*4 cases */, 38, MVT::i32,// ->105379
/*105341*/      OPC_Scope, 17, /*->105360*/ // 2 children in Scope
/*105343*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/*105345*/        OPC_EmitInteger, MVT::i32, 14, 
/*105348*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105351*/        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)
/*105360*/      /*Scope*/ 17, /*->105378*/
/*105361*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*105363*/        OPC_EmitInteger, MVT::i32, 14, 
/*105366*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105369*/        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)
/*105378*/      0, /*End of Scope*/
/*105379*/    /*SwitchType*/ 47, MVT::v16i8,// ->105428
/*105381*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*105383*/      OPC_EmitInteger, MVT::i32, 8, 
/*105386*/      OPC_EmitInteger, MVT::i32, 14, 
/*105389*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105392*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105395*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*105405*/      OPC_EmitInteger, MVT::i32, 0, 
/*105408*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105411*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #8
/*105417*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBRSR8), 0,
                    MVT::v16i8, 5/*#Ops*/, 0, 5, 6, 7, 8, 
                // Src: (bitreverse:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1) - Complexity = 3
                // Dst: (MVE_VBRSR8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$val1, (t2MOVi:{ *:[i32] } 8:{ *:[i32] }))
/*105428*/    /*SwitchType*/ 47, MVT::v4i32,// ->105477
/*105430*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*105432*/      OPC_EmitInteger, MVT::i32, 32, 
/*105435*/      OPC_EmitInteger, MVT::i32, 14, 
/*105438*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105441*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105444*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*105454*/      OPC_EmitInteger, MVT::i32, 0, 
/*105457*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105460*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #8
/*105466*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBRSR32), 0,
                    MVT::v4i32, 5/*#Ops*/, 0, 5, 6, 7, 8, 
                // Src: (bitreverse:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1) - Complexity = 3
                // Dst: (MVE_VBRSR32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$val1, (t2MOVi:{ *:[i32] } 32:{ *:[i32] }))
/*105477*/    /*SwitchType*/ 47, MVT::v8i16,// ->105526
/*105479*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*105481*/      OPC_EmitInteger, MVT::i32, 16, 
/*105484*/      OPC_EmitInteger, MVT::i32, 14, 
/*105487*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105490*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105493*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*105503*/      OPC_EmitInteger, MVT::i32, 0, 
/*105506*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105509*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #8
/*105515*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VBRSR16), 0,
                    MVT::v8i16, 5/*#Ops*/, 0, 5, 6, 7, 8, 
                // Src: (bitreverse:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1) - Complexity = 3
                // Dst: (MVE_VBRSR16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$val1, (t2MOVi:{ *:[i32] } 16:{ *:[i32] }))
/*105526*/    0, // EndSwitchType
/*105527*/  /*SwitchOpcode*/ 113, TARGET_VAL(ISD::BSWAP),// ->105643
/*105530*/    OPC_RecordChild0, // #0 = $Rm
/*105531*/    OPC_SwitchType /*3 cases */, 56, MVT::i32,// ->105590
/*105534*/      OPC_Scope, 17, /*->105553*/ // 3 children in Scope
/*105536*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*105538*/        OPC_EmitInteger, MVT::i32, 14, 
/*105541*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105544*/        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)
/*105553*/      /*Scope*/ 17, /*->105571*/
/*105554*/        OPC_CheckPatternPredicate, 16, // (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*105556*/        OPC_EmitInteger, MVT::i32, 14, 
/*105559*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105562*/        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)
/*105571*/      /*Scope*/ 17, /*->105589*/
/*105572*/        OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*105574*/        OPC_EmitInteger, MVT::i32, 14, 
/*105577*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105580*/        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)
/*105589*/      0, /*End of Scope*/
/*105590*/    /*SwitchType*/ 24, MVT::v8i16,// ->105616
/*105592*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*105594*/      OPC_EmitInteger, MVT::i32, 0, 
/*105597*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105600*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*105606*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV16_8), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (bswap:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                // Dst: (MVE_VREV16_8:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src)
/*105616*/    /*SwitchType*/ 24, MVT::v4i32,// ->105642
/*105618*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*105620*/      OPC_EmitInteger, MVT::i32, 0, 
/*105623*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105626*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*105632*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_8), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (bswap:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                // Dst: (MVE_VREV32_8:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src)
/*105642*/    0, // EndSwitchType
/*105643*/  /*SwitchOpcode*/ 59, TARGET_VAL(ARMISD::THREAD_POINTER),// ->105705
/*105646*/    OPC_CheckType, MVT::i32,
/*105648*/    OPC_Scope, 8, /*->105658*/ // 3 children in Scope
/*105650*/      OPC_CheckPatternPredicate, 91, // (!Subtarget->isThumb()) && (!Subtarget->isReadTPHard())
/*105652*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::TPsoft), 0,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (ARMthread_pointer:{ *:[i32] }) - Complexity = 3
                // Dst: (TPsoft:{ *:[i32] })
/*105658*/    /*Scope*/ 36, /*->105695*/
/*105659*/      OPC_CheckPatternPredicate, 92, // (!Subtarget->isThumb()) && (Subtarget->isReadTPHard())
/*105661*/      OPC_EmitInteger, MVT::i32, 15, 
/*105664*/      OPC_EmitInteger, MVT::i32, 0, 
/*105667*/      OPC_EmitInteger, MVT::i32, 13, 
/*105670*/      OPC_EmitInteger, MVT::i32, 0, 
/*105673*/      OPC_EmitInteger, MVT::i32, 3, 
/*105676*/      OPC_EmitInteger, MVT::i32, 14, 
/*105679*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105682*/      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] })
/*105695*/    /*Scope*/ 8, /*->105704*/
/*105696*/      OPC_CheckPatternPredicate, 46, // (Subtarget->isThumb())
/*105698*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tTPsoft), 0,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (ARMthread_pointer:{ *:[i32] }) - Complexity = 3
                // Dst: (tTPsoft:{ *:[i32] })
/*105704*/    0, /*End of Scope*/
/*105705*/  /*SwitchOpcode*/ 45, TARGET_VAL(ARMISD::EH_SJLJ_LONGJMP),// ->105753
/*105708*/    OPC_RecordNode, // #0 = 'ARMeh_sjlj_longjmp' chained node
/*105709*/    OPC_RecordChild1, // #1 = $src
/*105710*/    OPC_CheckChild1Type, MVT::i32,
/*105712*/    OPC_RecordChild2, // #2 = $scratch
/*105713*/    OPC_CheckChild2Type, MVT::i32,
/*105715*/    OPC_Scope, 11, /*->105728*/ // 3 children in Scope
/*105717*/      OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*105719*/      OPC_EmitMergeInputChains1_0,
/*105720*/      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)
/*105728*/    /*Scope*/ 11, /*->105740*/
/*105729*/      OPC_CheckPatternPredicate, 93, // (!Subtarget->isTargetWindows()) && (Subtarget->isThumb())
/*105731*/      OPC_EmitMergeInputChains1_0,
/*105732*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::tInt_eh_sjlj_longjmp), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (ARMeh_sjlj_longjmp tGPR:{ *:[i32] }:$src, tGPR:{ *:[i32] }:$scratch) - Complexity = 3
                // Dst: (tInt_eh_sjlj_longjmp:{ *:[i32] } tGPR:{ *:[i32] }:$src, tGPR:{ *:[i32] }:$scratch)
/*105740*/    /*Scope*/ 11, /*->105752*/
/*105741*/      OPC_CheckPatternPredicate, 45, // (Subtarget->isThumb()) && (Subtarget->isTargetWindows())
/*105743*/      OPC_EmitMergeInputChains1_0,
/*105744*/      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)
/*105752*/    0, /*End of Scope*/
/*105753*/  /*SwitchOpcode*/ 41, TARGET_VAL(ARMISD::MEMBARRIER_MCR),// ->105797
/*105756*/    OPC_RecordNode, // #0 = 'ARMMemBarrierMCR' chained node
/*105757*/    OPC_RecordChild1, // #1 = $zero
/*105758*/    OPC_CheckChild1Type, MVT::i32,
/*105760*/    OPC_CheckPatternPredicate, 0, // (Subtarget->hasV6Ops()) && (!Subtarget->isThumb())
/*105762*/    OPC_EmitMergeInputChains1_0,
/*105763*/    OPC_EmitInteger, MVT::i32, 15, 
/*105766*/    OPC_EmitInteger, MVT::i32, 0, 
/*105769*/    OPC_EmitInteger, MVT::i32, 7, 
/*105772*/    OPC_EmitInteger, MVT::i32, 10, 
/*105775*/    OPC_EmitInteger, MVT::i32, 5, 
/*105778*/    OPC_EmitInteger, MVT::i32, 14, 
/*105781*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105784*/    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] })
/*105797*/  /*SwitchOpcode*/ 69, TARGET_VAL(ARMISD::CMPFPE),// ->105869
/*105800*/    OPC_RecordChild0, // #0 = $Dd
/*105801*/    OPC_Scope, 21, /*->105824*/ // 3 children in Scope
/*105803*/      OPC_CheckChild0Type, MVT::f64,
/*105805*/      OPC_RecordChild1, // #1 = $Dm
/*105806*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*105808*/      OPC_EmitInteger, MVT::i32, 14, 
/*105811*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105814*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCMPED), 0|OPFL_GlueOutput,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (arm_cmpfpe DPR:{ *:[f64] }:$Dd, DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VCMPED:{ *:[i32] } DPR:{ *:[f64] }:$Dd, DPR:{ *:[f64] }:$Dm)
/*105824*/    /*Scope*/ 21, /*->105846*/
/*105825*/      OPC_CheckChild0Type, MVT::f32,
/*105827*/      OPC_RecordChild1, // #1 = $Sm
/*105828*/      OPC_CheckPatternPredicate, 42, // (Subtarget->hasVFP2Base())
/*105830*/      OPC_EmitInteger, MVT::i32, 14, 
/*105833*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105836*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCMPES), 0|OPFL_GlueOutput,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (arm_cmpfpe SPR:{ *:[f32] }:$Sd, SPR:{ *:[f32] }:$Sm) - Complexity = 3
                // Dst: (VCMPES:{ *:[i32] } SPR:{ *:[f32] }:$Sd, SPR:{ *:[f32] }:$Sm)
/*105846*/    /*Scope*/ 21, /*->105868*/
/*105847*/      OPC_CheckChild0Type, MVT::f16,
/*105849*/      OPC_RecordChild1, // #1 = $Sm
/*105850*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*105852*/      OPC_EmitInteger, MVT::i32, 14, 
/*105855*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105858*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCMPEH), 0|OPFL_GlueOutput,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (arm_cmpfpe HPR:{ *:[f16] }:$Sd, HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VCMPEH:{ *:[i32] } HPR:{ *:[f16] }:$Sd, HPR:{ *:[f16] }:$Sm)
/*105868*/    0, /*End of Scope*/
/*105869*/  /*SwitchOpcode*/ 69, TARGET_VAL(ARMISD::CMPFP),// ->105941
/*105872*/    OPC_RecordChild0, // #0 = $Dd
/*105873*/    OPC_Scope, 21, /*->105896*/ // 3 children in Scope
/*105875*/      OPC_CheckChild0Type, MVT::f64,
/*105877*/      OPC_RecordChild1, // #1 = $Dm
/*105878*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*105880*/      OPC_EmitInteger, MVT::i32, 14, 
/*105883*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105886*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCMPD), 0|OPFL_GlueOutput,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (arm_cmpfp DPR:{ *:[f64] }:$Dd, DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VCMPD:{ *:[i32] } DPR:{ *:[f64] }:$Dd, DPR:{ *:[f64] }:$Dm)
/*105896*/    /*Scope*/ 21, /*->105918*/
/*105897*/      OPC_CheckChild0Type, MVT::f32,
/*105899*/      OPC_RecordChild1, // #1 = $Sm
/*105900*/      OPC_CheckPatternPredicate, 42, // (Subtarget->hasVFP2Base())
/*105902*/      OPC_EmitInteger, MVT::i32, 14, 
/*105905*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105908*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCMPS), 0|OPFL_GlueOutput,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (arm_cmpfp SPR:{ *:[f32] }:$Sd, SPR:{ *:[f32] }:$Sm) - Complexity = 3
                // Dst: (VCMPS:{ *:[i32] } SPR:{ *:[f32] }:$Sd, SPR:{ *:[f32] }:$Sm)
/*105918*/    /*Scope*/ 21, /*->105940*/
/*105919*/      OPC_CheckChild0Type, MVT::f16,
/*105921*/      OPC_RecordChild1, // #1 = $Sm
/*105922*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*105924*/      OPC_EmitInteger, MVT::i32, 14, 
/*105927*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105930*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCMPH), 0|OPFL_GlueOutput,
                    MVT::i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (arm_cmpfp HPR:{ *:[f16] }:$Sd, HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VCMPH:{ *:[i32] } HPR:{ *:[f16] }:$Sd, HPR:{ *:[f16] }:$Sm)
/*105940*/    0, /*End of Scope*/
/*105941*/  /*SwitchOpcode*/ 63, TARGET_VAL(ARMISD::CMPFPEw0),// ->106007
/*105944*/    OPC_RecordChild0, // #0 = $Dd
/*105945*/    OPC_Scope, 19, /*->105966*/ // 3 children in Scope
/*105947*/      OPC_CheckChild0Type, MVT::f64,
/*105949*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*105951*/      OPC_EmitInteger, MVT::i32, 14, 
/*105954*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105957*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCMPEZD), 0|OPFL_GlueOutput,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (arm_cmpfpe0 DPR:{ *:[f64] }:$Dd) - Complexity = 3
                // Dst: (VCMPEZD:{ *:[i32] } DPR:{ *:[f64] }:$Dd)
/*105966*/    /*Scope*/ 19, /*->105986*/
/*105967*/      OPC_CheckChild0Type, MVT::f32,
/*105969*/      OPC_CheckPatternPredicate, 42, // (Subtarget->hasVFP2Base())
/*105971*/      OPC_EmitInteger, MVT::i32, 14, 
/*105974*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105977*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCMPEZS), 0|OPFL_GlueOutput,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (arm_cmpfpe0 SPR:{ *:[f32] }:$Sd) - Complexity = 3
                // Dst: (VCMPEZS:{ *:[i32] } SPR:{ *:[f32] }:$Sd)
/*105986*/    /*Scope*/ 19, /*->106006*/
/*105987*/      OPC_CheckChild0Type, MVT::f16,
/*105989*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*105991*/      OPC_EmitInteger, MVT::i32, 14, 
/*105994*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*105997*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCMPEZH), 0|OPFL_GlueOutput,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (arm_cmpfpe0 HPR:{ *:[f16] }:$Sd) - Complexity = 3
                // Dst: (VCMPEZH:{ *:[i32] } HPR:{ *:[f16] }:$Sd)
/*106006*/    0, /*End of Scope*/
/*106007*/  /*SwitchOpcode*/ 63, TARGET_VAL(ARMISD::CMPFPw0),// ->106073
/*106010*/    OPC_RecordChild0, // #0 = $Dd
/*106011*/    OPC_Scope, 19, /*->106032*/ // 3 children in Scope
/*106013*/      OPC_CheckChild0Type, MVT::f64,
/*106015*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*106017*/      OPC_EmitInteger, MVT::i32, 14, 
/*106020*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106023*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCMPZD), 0|OPFL_GlueOutput,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (arm_cmpfp0 DPR:{ *:[f64] }:$Dd) - Complexity = 3
                // Dst: (VCMPZD:{ *:[i32] } DPR:{ *:[f64] }:$Dd)
/*106032*/    /*Scope*/ 19, /*->106052*/
/*106033*/      OPC_CheckChild0Type, MVT::f32,
/*106035*/      OPC_CheckPatternPredicate, 42, // (Subtarget->hasVFP2Base())
/*106037*/      OPC_EmitInteger, MVT::i32, 14, 
/*106040*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106043*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCMPZS), 0|OPFL_GlueOutput,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (arm_cmpfp0 SPR:{ *:[f32] }:$Sd) - Complexity = 3
                // Dst: (VCMPZS:{ *:[i32] } SPR:{ *:[f32] }:$Sd)
/*106052*/    /*Scope*/ 19, /*->106072*/
/*106053*/      OPC_CheckChild0Type, MVT::f16,
/*106055*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*106057*/      OPC_EmitInteger, MVT::i32, 14, 
/*106060*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106063*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VCMPZH), 0|OPFL_GlueOutput,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (arm_cmpfp0 HPR:{ *:[f16] }:$Sd) - Complexity = 3
                // Dst: (VCMPZH:{ *:[i32] } HPR:{ *:[f16] }:$Sd)
/*106072*/    0, /*End of Scope*/
/*106073*/  /*SwitchOpcode*/ 17|128,27/*3473*/, TARGET_VAL(ISD::BITCAST),// ->109550
/*106077*/    OPC_Scope, 22, /*->106101*/ // 3 children in Scope
/*106079*/      OPC_RecordChild0, // #0 = $Sn
/*106080*/      OPC_CheckChild0Type, MVT::f32,
/*106082*/      OPC_CheckType, MVT::i32,
/*106084*/      OPC_CheckPatternPredicate, 36, // (Subtarget->hasFPRegs())
/*106086*/      OPC_EmitInteger, MVT::i32, 14, 
/*106089*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106092*/      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)
/*106101*/    /*Scope*/ 33, /*->106135*/
/*106102*/      OPC_MoveChild0,
/*106103*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*106106*/      OPC_RecordChild0, // #0 = $src
/*106107*/      OPC_CheckChild0Type, MVT::v2i32,
/*106109*/      OPC_RecordChild1, // #1 = $lane
/*106110*/      OPC_MoveChild1,
/*106111*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*106114*/      OPC_MoveParent,
/*106115*/      OPC_CheckType, MVT::i32,
/*106117*/      OPC_MoveParent,
/*106118*/      OPC_CheckType, MVT::f32,
/*106120*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*106122*/      OPC_EmitConvertToTarget, 1,
/*106124*/      OPC_EmitNodeXForm, 17, 2, // SSubReg_f32_reg
/*106127*/      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))
/*106135*/    /*Scope*/ 84|128,26/*3412*/, /*->109549*/
/*106137*/      OPC_RecordChild0, // #0 = $src
/*106138*/      OPC_Scope, 23|128,1/*151*/, /*->106292*/ // 15 children in Scope
/*106141*/        OPC_CheckChild0Type, MVT::v1i64,
/*106143*/        OPC_SwitchType /*6 cases */, 5, MVT::f64,// ->106151
/*106146*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*106148*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                     // Dst: DPR:{ *:[f64] }:$src
/*106151*/        /*SwitchType*/ 26, MVT::v2i32,// ->106179
/*106153*/          OPC_Scope, 5, /*->106160*/ // 2 children in Scope
/*106155*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106157*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2i32] }:$src
/*106160*/          /*Scope*/ 17, /*->106178*/
/*106161*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106163*/            OPC_EmitInteger, MVT::i32, 14, 
/*106166*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106169*/            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)
/*106178*/          0, /*End of Scope*/
/*106179*/        /*SwitchType*/ 26, MVT::v4i16,// ->106207
/*106181*/          OPC_Scope, 5, /*->106188*/ // 2 children in Scope
/*106183*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106185*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4i16] }:$src
/*106188*/          /*Scope*/ 17, /*->106206*/
/*106189*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106191*/            OPC_EmitInteger, MVT::i32, 14, 
/*106194*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106197*/            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)
/*106206*/          0, /*End of Scope*/
/*106207*/        /*SwitchType*/ 26, MVT::v8i8,// ->106235
/*106209*/          OPC_Scope, 5, /*->106216*/ // 2 children in Scope
/*106211*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106213*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v8i8] }:$src
/*106216*/          /*Scope*/ 17, /*->106234*/
/*106217*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106219*/            OPC_EmitInteger, MVT::i32, 14, 
/*106222*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106225*/            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)
/*106234*/          0, /*End of Scope*/
/*106235*/        /*SwitchType*/ 26, MVT::v2f32,// ->106263
/*106237*/          OPC_Scope, 5, /*->106244*/ // 2 children in Scope
/*106239*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106241*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2f32] }:$src
/*106244*/          /*Scope*/ 17, /*->106262*/
/*106245*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106247*/            OPC_EmitInteger, MVT::i32, 14, 
/*106250*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106253*/            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)
/*106262*/          0, /*End of Scope*/
/*106263*/        /*SwitchType*/ 26, MVT::v4f16,// ->106291
/*106265*/          OPC_Scope, 5, /*->106272*/ // 2 children in Scope
/*106267*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106269*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f16] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4f16] }:$src
/*106272*/          /*Scope*/ 17, /*->106290*/
/*106273*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106275*/            OPC_EmitInteger, MVT::i32, 14, 
/*106278*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106281*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d16), 0,
                          MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4f16] } DPR:{ *:[v1i64] }:$src) - Complexity = 3
                      // Dst: (VREV64d16:{ *:[v4f16] } DPR:{ *:[v1i64] }:$src)
/*106290*/          0, /*End of Scope*/
/*106291*/        0, // EndSwitchType
/*106292*/      /*Scope*/ 23|128,1/*151*/, /*->106445*/
/*106294*/        OPC_CheckChild0Type, MVT::v2f32,
/*106296*/        OPC_SwitchType /*6 cases */, 26, MVT::f64,// ->106325
/*106299*/          OPC_Scope, 5, /*->106306*/ // 2 children in Scope
/*106301*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106303*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[f64] }:$src
/*106306*/          /*Scope*/ 17, /*->106324*/
/*106307*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106309*/            OPC_EmitInteger, MVT::i32, 14, 
/*106312*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106315*/            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)
/*106324*/          0, /*End of Scope*/
/*106325*/        /*SwitchType*/ 5, MVT::v2i32,// ->106332
/*106327*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*106329*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                     // Dst: DPR:{ *:[v2i32] }:$src
/*106332*/        /*SwitchType*/ 26, MVT::v1i64,// ->106360
/*106334*/          OPC_Scope, 5, /*->106341*/ // 2 children in Scope
/*106336*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106338*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v1i64] }:$src
/*106341*/          /*Scope*/ 17, /*->106359*/
/*106342*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106344*/            OPC_EmitInteger, MVT::i32, 14, 
/*106347*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106350*/            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)
/*106359*/          0, /*End of Scope*/
/*106360*/        /*SwitchType*/ 26, MVT::v4i16,// ->106388
/*106362*/          OPC_Scope, 5, /*->106369*/ // 2 children in Scope
/*106364*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106366*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4i16] }:$src
/*106369*/          /*Scope*/ 17, /*->106387*/
/*106370*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106372*/            OPC_EmitInteger, MVT::i32, 14, 
/*106375*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106378*/            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)
/*106387*/          0, /*End of Scope*/
/*106388*/        /*SwitchType*/ 26, MVT::v8i8,// ->106416
/*106390*/          OPC_Scope, 5, /*->106397*/ // 2 children in Scope
/*106392*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106394*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v8i8] }:$src
/*106397*/          /*Scope*/ 17, /*->106415*/
/*106398*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106400*/            OPC_EmitInteger, MVT::i32, 14, 
/*106403*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106406*/            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)
/*106415*/          0, /*End of Scope*/
/*106416*/        /*SwitchType*/ 26, MVT::v4f16,// ->106444
/*106418*/          OPC_Scope, 5, /*->106425*/ // 2 children in Scope
/*106420*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106422*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f16] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4f16] }:$src
/*106425*/          /*Scope*/ 17, /*->106443*/
/*106426*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106428*/            OPC_EmitInteger, MVT::i32, 14, 
/*106431*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106434*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d16), 0,
                          MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4f16] } DPR:{ *:[v2f32] }:$src) - Complexity = 3
                      // Dst: (VREV32d16:{ *:[v4f16] } DPR:{ *:[v2f32] }:$src)
/*106443*/          0, /*End of Scope*/
/*106444*/        0, // EndSwitchType
/*106445*/      /*Scope*/ 23|128,1/*151*/, /*->106598*/
/*106447*/        OPC_CheckChild0Type, MVT::v2i32,
/*106449*/        OPC_SwitchType /*6 cases */, 26, MVT::f64,// ->106478
/*106452*/          OPC_Scope, 5, /*->106459*/ // 2 children in Scope
/*106454*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106456*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[f64] }:$src
/*106459*/          /*Scope*/ 17, /*->106477*/
/*106460*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106462*/            OPC_EmitInteger, MVT::i32, 14, 
/*106465*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106468*/            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)
/*106477*/          0, /*End of Scope*/
/*106478*/        /*SwitchType*/ 26, MVT::v1i64,// ->106506
/*106480*/          OPC_Scope, 5, /*->106487*/ // 2 children in Scope
/*106482*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106484*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v1i64] }:$src
/*106487*/          /*Scope*/ 17, /*->106505*/
/*106488*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106490*/            OPC_EmitInteger, MVT::i32, 14, 
/*106493*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106496*/            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)
/*106505*/          0, /*End of Scope*/
/*106506*/        /*SwitchType*/ 26, MVT::v4i16,// ->106534
/*106508*/          OPC_Scope, 5, /*->106515*/ // 2 children in Scope
/*106510*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106512*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4i16] }:$src
/*106515*/          /*Scope*/ 17, /*->106533*/
/*106516*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106518*/            OPC_EmitInteger, MVT::i32, 14, 
/*106521*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106524*/            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)
/*106533*/          0, /*End of Scope*/
/*106534*/        /*SwitchType*/ 26, MVT::v8i8,// ->106562
/*106536*/          OPC_Scope, 5, /*->106543*/ // 2 children in Scope
/*106538*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106540*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v8i8] }:$src
/*106543*/          /*Scope*/ 17, /*->106561*/
/*106544*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106546*/            OPC_EmitInteger, MVT::i32, 14, 
/*106549*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106552*/            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)
/*106561*/          0, /*End of Scope*/
/*106562*/        /*SwitchType*/ 5, MVT::v2f32,// ->106569
/*106564*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*106566*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                     // Dst: DPR:{ *:[v2f32] }:$src
/*106569*/        /*SwitchType*/ 26, MVT::v4f16,// ->106597
/*106571*/          OPC_Scope, 5, /*->106578*/ // 2 children in Scope
/*106573*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106575*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f16] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4f16] }:$src
/*106578*/          /*Scope*/ 17, /*->106596*/
/*106579*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106581*/            OPC_EmitInteger, MVT::i32, 14, 
/*106584*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106587*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d16), 0,
                          MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4f16] } DPR:{ *:[v2i32] }:$src) - Complexity = 3
                      // Dst: (VREV32d16:{ *:[v4f16] } DPR:{ *:[v2i32] }:$src)
/*106596*/          0, /*End of Scope*/
/*106597*/        0, // EndSwitchType
/*106598*/      /*Scope*/ 23|128,1/*151*/, /*->106751*/
/*106600*/        OPC_CheckChild0Type, MVT::v4f16,
/*106602*/        OPC_SwitchType /*6 cases */, 26, MVT::f64,// ->106631
/*106605*/          OPC_Scope, 5, /*->106612*/ // 2 children in Scope
/*106607*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106609*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v4f16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[f64] }:$src
/*106612*/          /*Scope*/ 17, /*->106630*/
/*106613*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106615*/            OPC_EmitInteger, MVT::i32, 14, 
/*106618*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106621*/            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)
/*106630*/          0, /*End of Scope*/
/*106631*/        /*SwitchType*/ 5, MVT::v4i16,// ->106638
/*106633*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*106635*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[v4f16] }:$src) - Complexity = 3
                     // Dst: DPR:{ *:[v4i16] }:$src
/*106638*/        /*SwitchType*/ 26, MVT::v1i64,// ->106666
/*106640*/          OPC_Scope, 5, /*->106647*/ // 2 children in Scope
/*106642*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106644*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[v4f16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v1i64] }:$src
/*106647*/          /*Scope*/ 17, /*->106665*/
/*106648*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106650*/            OPC_EmitInteger, MVT::i32, 14, 
/*106653*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106656*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d16), 0,
                          MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[v4f16] }:$src) - Complexity = 3
                      // Dst: (VREV64d16:{ *:[v1i64] } DPR:{ *:[v4f16] }:$src)
/*106665*/          0, /*End of Scope*/
/*106666*/        /*SwitchType*/ 26, MVT::v2i32,// ->106694
/*106668*/          OPC_Scope, 5, /*->106675*/ // 2 children in Scope
/*106670*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106672*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[v4f16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2i32] }:$src
/*106675*/          /*Scope*/ 17, /*->106693*/
/*106676*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106678*/            OPC_EmitInteger, MVT::i32, 14, 
/*106681*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106684*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d16), 0,
                          MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[v4f16] }:$src) - Complexity = 3
                      // Dst: (VREV32d16:{ *:[v2i32] } DPR:{ *:[v4f16] }:$src)
/*106693*/          0, /*End of Scope*/
/*106694*/        /*SwitchType*/ 26, MVT::v8i8,// ->106722
/*106696*/          OPC_Scope, 5, /*->106703*/ // 2 children in Scope
/*106698*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106700*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[v4f16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v8i8] }:$src
/*106703*/          /*Scope*/ 17, /*->106721*/
/*106704*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106706*/            OPC_EmitInteger, MVT::i32, 14, 
/*106709*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106712*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV16d8), 0,
                          MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[v4f16] }:$src) - Complexity = 3
                      // Dst: (VREV16d8:{ *:[v8i8] } DPR:{ *:[v4f16] }:$src)
/*106721*/          0, /*End of Scope*/
/*106722*/        /*SwitchType*/ 26, MVT::v2f32,// ->106750
/*106724*/          OPC_Scope, 5, /*->106731*/ // 2 children in Scope
/*106726*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106728*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[v4f16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2f32] }:$src
/*106731*/          /*Scope*/ 17, /*->106749*/
/*106732*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106734*/            OPC_EmitInteger, MVT::i32, 14, 
/*106737*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106740*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d16), 0,
                          MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[v4f16] }:$src) - Complexity = 3
                      // Dst: (VREV32d16:{ *:[v2f32] } DPR:{ *:[v4f16] }:$src)
/*106749*/          0, /*End of Scope*/
/*106750*/        0, // EndSwitchType
/*106751*/      /*Scope*/ 23|128,1/*151*/, /*->106904*/
/*106753*/        OPC_CheckChild0Type, MVT::v4i16,
/*106755*/        OPC_SwitchType /*6 cases */, 26, MVT::f64,// ->106784
/*106758*/          OPC_Scope, 5, /*->106765*/ // 2 children in Scope
/*106760*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106762*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[f64] }:$src
/*106765*/          /*Scope*/ 17, /*->106783*/
/*106766*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106768*/            OPC_EmitInteger, MVT::i32, 14, 
/*106771*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106774*/            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)
/*106783*/          0, /*End of Scope*/
/*106784*/        /*SwitchType*/ 26, MVT::v1i64,// ->106812
/*106786*/          OPC_Scope, 5, /*->106793*/ // 2 children in Scope
/*106788*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106790*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v1i64] }:$src
/*106793*/          /*Scope*/ 17, /*->106811*/
/*106794*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106796*/            OPC_EmitInteger, MVT::i32, 14, 
/*106799*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106802*/            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)
/*106811*/          0, /*End of Scope*/
/*106812*/        /*SwitchType*/ 26, MVT::v2i32,// ->106840
/*106814*/          OPC_Scope, 5, /*->106821*/ // 2 children in Scope
/*106816*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106818*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2i32] }:$src
/*106821*/          /*Scope*/ 17, /*->106839*/
/*106822*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106824*/            OPC_EmitInteger, MVT::i32, 14, 
/*106827*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106830*/            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)
/*106839*/          0, /*End of Scope*/
/*106840*/        /*SwitchType*/ 26, MVT::v8i8,// ->106868
/*106842*/          OPC_Scope, 5, /*->106849*/ // 2 children in Scope
/*106844*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106846*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v8i8] }:$src
/*106849*/          /*Scope*/ 17, /*->106867*/
/*106850*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106852*/            OPC_EmitInteger, MVT::i32, 14, 
/*106855*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106858*/            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)
/*106867*/          0, /*End of Scope*/
/*106868*/        /*SwitchType*/ 5, MVT::v4f16,// ->106875
/*106870*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*106872*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v4f16] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                     // Dst: DPR:{ *:[v4f16] }:$src
/*106875*/        /*SwitchType*/ 26, MVT::v2f32,// ->106903
/*106877*/          OPC_Scope, 5, /*->106884*/ // 2 children in Scope
/*106879*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106881*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[v4i16] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2f32] }:$src
/*106884*/          /*Scope*/ 17, /*->106902*/
/*106885*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106887*/            OPC_EmitInteger, MVT::i32, 14, 
/*106890*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106893*/            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)
/*106902*/          0, /*End of Scope*/
/*106903*/        0, // EndSwitchType
/*106904*/      /*Scope*/ 44|128,1/*172*/, /*->107078*/
/*106906*/        OPC_CheckChild0Type, MVT::v8i8,
/*106908*/        OPC_SwitchType /*6 cases */, 26, MVT::f64,// ->106937
/*106911*/          OPC_Scope, 5, /*->106918*/ // 2 children in Scope
/*106913*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106915*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[f64] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[f64] }:$src
/*106918*/          /*Scope*/ 17, /*->106936*/
/*106919*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106921*/            OPC_EmitInteger, MVT::i32, 14, 
/*106924*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106927*/            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)
/*106936*/          0, /*End of Scope*/
/*106937*/        /*SwitchType*/ 26, MVT::v1i64,// ->106965
/*106939*/          OPC_Scope, 5, /*->106946*/ // 2 children in Scope
/*106941*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106943*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v1i64] }:$src
/*106946*/          /*Scope*/ 17, /*->106964*/
/*106947*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106949*/            OPC_EmitInteger, MVT::i32, 14, 
/*106952*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106955*/            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)
/*106964*/          0, /*End of Scope*/
/*106965*/        /*SwitchType*/ 26, MVT::v2i32,// ->106993
/*106967*/          OPC_Scope, 5, /*->106974*/ // 2 children in Scope
/*106969*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106971*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2i32] }:$src
/*106974*/          /*Scope*/ 17, /*->106992*/
/*106975*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*106977*/            OPC_EmitInteger, MVT::i32, 14, 
/*106980*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*106983*/            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)
/*106992*/          0, /*End of Scope*/
/*106993*/        /*SwitchType*/ 26, MVT::v4i16,// ->107021
/*106995*/          OPC_Scope, 5, /*->107002*/ // 2 children in Scope
/*106997*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*106999*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4i16] }:$src
/*107002*/          /*Scope*/ 17, /*->107020*/
/*107003*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107005*/            OPC_EmitInteger, MVT::i32, 14, 
/*107008*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107011*/            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)
/*107020*/          0, /*End of Scope*/
/*107021*/        /*SwitchType*/ 26, MVT::v2f32,// ->107049
/*107023*/          OPC_Scope, 5, /*->107030*/ // 2 children in Scope
/*107025*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107027*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2f32] }:$src
/*107030*/          /*Scope*/ 17, /*->107048*/
/*107031*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107033*/            OPC_EmitInteger, MVT::i32, 14, 
/*107036*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107039*/            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)
/*107048*/          0, /*End of Scope*/
/*107049*/        /*SwitchType*/ 26, MVT::v4f16,// ->107077
/*107051*/          OPC_Scope, 5, /*->107058*/ // 2 children in Scope
/*107053*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107055*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f16] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4f16] }:$src
/*107058*/          /*Scope*/ 17, /*->107076*/
/*107059*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107061*/            OPC_EmitInteger, MVT::i32, 14, 
/*107064*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107067*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV16d8), 0,
                          MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4f16] } DPR:{ *:[v8i8] }:$src) - Complexity = 3
                      // Dst: (VREV16d8:{ *:[v4f16] } DPR:{ *:[v8i8] }:$src)
/*107076*/          0, /*End of Scope*/
/*107077*/        0, // EndSwitchType
/*107078*/      /*Scope*/ 54, /*->107133*/
/*107079*/        OPC_CheckChild0Type, MVT::i32,
/*107081*/        OPC_CheckType, MVT::f32,
/*107083*/        OPC_Scope, 17, /*->107102*/ // 2 children in Scope
/*107085*/          OPC_CheckPatternPredicate, 94, // (Subtarget->hasFPRegs()) && (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP())
/*107087*/          OPC_EmitInteger, MVT::i32, 14, 
/*107090*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107093*/          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)
/*107102*/        /*Scope*/ 29, /*->107132*/
/*107103*/          OPC_CheckPatternPredicate, 95, // (!Subtarget->preferVMOVSR() &&Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasNEON())
/*107105*/          OPC_EmitInteger, MVT::i32, 14, 
/*107108*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107111*/          OPC_EmitNode1, TARGET_VAL(ARM::VMOVDRR), 0,
                        MVT::f64, 4/*#Ops*/, 0, 0, 1, 2,  // Results = #3
/*107121*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*107124*/          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] })
/*107132*/        0, /*End of Scope*/
/*107133*/      /*Scope*/ 23|128,1/*151*/, /*->107286*/
/*107135*/        OPC_CheckChild0Type, MVT::f64,
/*107137*/        OPC_SwitchType /*6 cases */, 5, MVT::v1i64,// ->107145
/*107140*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*107142*/          OPC_CompleteMatch, 1, 0, 
                     // Src: (bitconvert:{ *:[v1i64] } DPR:{ *:[f64] }:$src) - Complexity = 3
                     // Dst: DPR:{ *:[v1i64] }:$src
/*107145*/        /*SwitchType*/ 26, MVT::v2i32,// ->107173
/*107147*/          OPC_Scope, 5, /*->107154*/ // 2 children in Scope
/*107149*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107151*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i32] } DPR:{ *:[f64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2i32] }:$src
/*107154*/          /*Scope*/ 17, /*->107172*/
/*107155*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107157*/            OPC_EmitInteger, MVT::i32, 14, 
/*107160*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107163*/            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)
/*107172*/          0, /*End of Scope*/
/*107173*/        /*SwitchType*/ 26, MVT::v4i16,// ->107201
/*107175*/          OPC_Scope, 5, /*->107182*/ // 2 children in Scope
/*107177*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107179*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i16] } DPR:{ *:[f64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4i16] }:$src
/*107182*/          /*Scope*/ 17, /*->107200*/
/*107183*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107185*/            OPC_EmitInteger, MVT::i32, 14, 
/*107188*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107191*/            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)
/*107200*/          0, /*End of Scope*/
/*107201*/        /*SwitchType*/ 26, MVT::v8i8,// ->107229
/*107203*/          OPC_Scope, 5, /*->107210*/ // 2 children in Scope
/*107205*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107207*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i8] } DPR:{ *:[f64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v8i8] }:$src
/*107210*/          /*Scope*/ 17, /*->107228*/
/*107211*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107213*/            OPC_EmitInteger, MVT::i32, 14, 
/*107216*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107219*/            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)
/*107228*/          0, /*End of Scope*/
/*107229*/        /*SwitchType*/ 26, MVT::v2f32,// ->107257
/*107231*/          OPC_Scope, 5, /*->107238*/ // 2 children in Scope
/*107233*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107235*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f32] } DPR:{ *:[f64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v2f32] }:$src
/*107238*/          /*Scope*/ 17, /*->107256*/
/*107239*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107241*/            OPC_EmitInteger, MVT::i32, 14, 
/*107244*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107247*/            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)
/*107256*/          0, /*End of Scope*/
/*107257*/        /*SwitchType*/ 26, MVT::v4f16,// ->107285
/*107259*/          OPC_Scope, 5, /*->107266*/ // 2 children in Scope
/*107261*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107263*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f16] } DPR:{ *:[f64] }:$src) - Complexity = 3
                       // Dst: DPR:{ *:[v4f16] }:$src
/*107266*/          /*Scope*/ 17, /*->107284*/
/*107267*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107269*/            OPC_EmitInteger, MVT::i32, 14, 
/*107272*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107275*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d16), 0,
                          MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4f16] } DPR:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VREV64d16:{ *:[v4f16] } DPR:{ *:[f64] }:$src)
/*107284*/          0, /*End of Scope*/
/*107285*/        0, // EndSwitchType
/*107286*/      /*Scope*/ 59|128,2/*315*/, /*->107603*/
/*107288*/        OPC_CheckChild0Type, MVT::v2f64,
/*107290*/        OPC_SwitchType /*6 cases */, 14, MVT::v2i64,// ->107307
/*107293*/          OPC_Scope, 5, /*->107300*/ // 2 children in Scope
/*107295*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*107297*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2i64] }:$src
/*107300*/          /*Scope*/ 5, /*->107306*/
/*107301*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*107303*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } MQPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v2i64] }:$src
/*107306*/          0, /*End of Scope*/
/*107307*/        /*SwitchType*/ 57, MVT::v4i32,// ->107366
/*107309*/          OPC_Scope, 5, /*->107316*/ // 4 children in Scope
/*107311*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107313*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4i32] }:$src
/*107316*/          /*Scope*/ 5, /*->107322*/
/*107317*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*107319*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } MQPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v4i32] }:$src
/*107322*/          /*Scope*/ 17, /*->107340*/
/*107323*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107325*/            OPC_EmitInteger, MVT::i32, 14, 
/*107328*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107331*/            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)
/*107340*/          /*Scope*/ 24, /*->107365*/
/*107341*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*107343*/            OPC_EmitInteger, MVT::i32, 0, 
/*107346*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107349*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*107355*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_32), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v4i32] } MQPR:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_32:{ *:[v4i32] } MQPR:{ *:[v2f64] }:$src)
/*107365*/          0, /*End of Scope*/
/*107366*/        /*SwitchType*/ 57, MVT::v8i16,// ->107425
/*107368*/          OPC_Scope, 5, /*->107375*/ // 4 children in Scope
/*107370*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107372*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8i16] }:$src
/*107375*/          /*Scope*/ 5, /*->107381*/
/*107376*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*107378*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } MQPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v8i16] }:$src
/*107381*/          /*Scope*/ 17, /*->107399*/
/*107382*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107384*/            OPC_EmitInteger, MVT::i32, 14, 
/*107387*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107390*/            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)
/*107399*/          /*Scope*/ 24, /*->107424*/
/*107400*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*107402*/            OPC_EmitInteger, MVT::i32, 0, 
/*107405*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107408*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*107414*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_16), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v8i16] } MQPR:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_16:{ *:[v8i16] } MQPR:{ *:[v2f64] }:$src)
/*107424*/          0, /*End of Scope*/
/*107425*/        /*SwitchType*/ 57, MVT::v16i8,// ->107484
/*107427*/          OPC_Scope, 5, /*->107434*/ // 4 children in Scope
/*107429*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107431*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v16i8] }:$src
/*107434*/          /*Scope*/ 5, /*->107440*/
/*107435*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*107437*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } MQPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v16i8] }:$src
/*107440*/          /*Scope*/ 17, /*->107458*/
/*107441*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107443*/            OPC_EmitInteger, MVT::i32, 14, 
/*107446*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107449*/            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)
/*107458*/          /*Scope*/ 24, /*->107483*/
/*107459*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*107461*/            OPC_EmitInteger, MVT::i32, 0, 
/*107464*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107467*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*107473*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_8), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v16i8] } MQPR:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_8:{ *:[v16i8] } MQPR:{ *:[v2f64] }:$src)
/*107483*/          0, /*End of Scope*/
/*107484*/        /*SwitchType*/ 57, MVT::v4f32,// ->107543
/*107486*/          OPC_Scope, 5, /*->107493*/ // 4 children in Scope
/*107488*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107490*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4f32] }:$src
/*107493*/          /*Scope*/ 5, /*->107499*/
/*107494*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*107496*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } MQPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v4f32] }:$src
/*107499*/          /*Scope*/ 17, /*->107517*/
/*107500*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107502*/            OPC_EmitInteger, MVT::i32, 14, 
/*107505*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107508*/            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)
/*107517*/          /*Scope*/ 24, /*->107542*/
/*107518*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*107520*/            OPC_EmitInteger, MVT::i32, 0, 
/*107523*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107526*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*107532*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_32), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v4f32] } MQPR:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_32:{ *:[v4f32] } MQPR:{ *:[v2f64] }:$src)
/*107542*/          0, /*End of Scope*/
/*107543*/        /*SwitchType*/ 57, MVT::v8f16,// ->107602
/*107545*/          OPC_Scope, 5, /*->107552*/ // 4 children in Scope
/*107547*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107549*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8f16] } QPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8f16] }:$src
/*107552*/          /*Scope*/ 5, /*->107558*/
/*107553*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*107555*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8f16] } MQPR:{ *:[v2f64] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v8f16] }:$src
/*107558*/          /*Scope*/ 17, /*->107576*/
/*107559*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107561*/            OPC_EmitInteger, MVT::i32, 14, 
/*107564*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107567*/            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)
/*107576*/          /*Scope*/ 24, /*->107601*/
/*107577*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*107579*/            OPC_EmitInteger, MVT::i32, 0, 
/*107582*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107585*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*107591*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_16), 0,
                          MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v8f16] } MQPR:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_16:{ *:[v8f16] } MQPR:{ *:[v2f64] }:$src)
/*107601*/          0, /*End of Scope*/
/*107602*/        0, // EndSwitchType
/*107603*/      /*Scope*/ 59|128,2/*315*/, /*->107920*/
/*107605*/        OPC_CheckChild0Type, MVT::v4f32,
/*107607*/        OPC_SwitchType /*6 cases */, 14, MVT::v4i32,// ->107624
/*107610*/          OPC_Scope, 5, /*->107617*/ // 2 children in Scope
/*107612*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*107614*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4i32] }:$src
/*107617*/          /*Scope*/ 5, /*->107623*/
/*107618*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*107620*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v4i32] }:$src
/*107623*/          0, /*End of Scope*/
/*107624*/        /*SwitchType*/ 57, MVT::v2i64,// ->107683
/*107626*/          OPC_Scope, 5, /*->107633*/ // 4 children in Scope
/*107628*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107630*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2i64] }:$src
/*107633*/          /*Scope*/ 5, /*->107639*/
/*107634*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*107636*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v2i64] }:$src
/*107639*/          /*Scope*/ 17, /*->107657*/
/*107640*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107642*/            OPC_EmitInteger, MVT::i32, 14, 
/*107645*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107648*/            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)
/*107657*/          /*Scope*/ 24, /*->107682*/
/*107658*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*107660*/            OPC_EmitInteger, MVT::i32, 0, 
/*107663*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107666*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*107672*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_32), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v2i64] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_32:{ *:[v2i64] } MQPR:{ *:[v4f32] }:$src)
/*107682*/          0, /*End of Scope*/
/*107683*/        /*SwitchType*/ 57, MVT::v8i16,// ->107742
/*107685*/          OPC_Scope, 5, /*->107692*/ // 4 children in Scope
/*107687*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107689*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8i16] }:$src
/*107692*/          /*Scope*/ 5, /*->107698*/
/*107693*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*107695*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v8i16] }:$src
/*107698*/          /*Scope*/ 17, /*->107716*/
/*107699*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107701*/            OPC_EmitInteger, MVT::i32, 14, 
/*107704*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107707*/            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)
/*107716*/          /*Scope*/ 24, /*->107741*/
/*107717*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*107719*/            OPC_EmitInteger, MVT::i32, 0, 
/*107722*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107725*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*107731*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_16), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v8i16] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV32_16:{ *:[v8i16] } MQPR:{ *:[v4f32] }:$src)
/*107741*/          0, /*End of Scope*/
/*107742*/        /*SwitchType*/ 57, MVT::v16i8,// ->107801
/*107744*/          OPC_Scope, 5, /*->107751*/ // 4 children in Scope
/*107746*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107748*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v16i8] }:$src
/*107751*/          /*Scope*/ 5, /*->107757*/
/*107752*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*107754*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v16i8] }:$src
/*107757*/          /*Scope*/ 17, /*->107775*/
/*107758*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107760*/            OPC_EmitInteger, MVT::i32, 14, 
/*107763*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107766*/            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)
/*107775*/          /*Scope*/ 24, /*->107800*/
/*107776*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*107778*/            OPC_EmitInteger, MVT::i32, 0, 
/*107781*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107784*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*107790*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_8), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v16i8] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV32_8:{ *:[v16i8] } MQPR:{ *:[v4f32] }:$src)
/*107800*/          0, /*End of Scope*/
/*107801*/        /*SwitchType*/ 57, MVT::v2f64,// ->107860
/*107803*/          OPC_Scope, 5, /*->107810*/ // 4 children in Scope
/*107805*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107807*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2f64] }:$src
/*107810*/          /*Scope*/ 5, /*->107816*/
/*107811*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*107813*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v2f64] }:$src
/*107816*/          /*Scope*/ 17, /*->107834*/
/*107817*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107819*/            OPC_EmitInteger, MVT::i32, 14, 
/*107822*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107825*/            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)
/*107834*/          /*Scope*/ 24, /*->107859*/
/*107835*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*107837*/            OPC_EmitInteger, MVT::i32, 0, 
/*107840*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107843*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*107849*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_32), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v2f64] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_32:{ *:[v2f64] } MQPR:{ *:[v4f32] }:$src)
/*107859*/          0, /*End of Scope*/
/*107860*/        /*SwitchType*/ 57, MVT::v8f16,// ->107919
/*107862*/          OPC_Scope, 5, /*->107869*/ // 4 children in Scope
/*107864*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107866*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8f16] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8f16] }:$src
/*107869*/          /*Scope*/ 5, /*->107875*/
/*107870*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*107872*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8f16] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v8f16] }:$src
/*107875*/          /*Scope*/ 17, /*->107893*/
/*107876*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107878*/            OPC_EmitInteger, MVT::i32, 14, 
/*107881*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107884*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q16), 0,
                          MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8f16] } QPR:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VREV32q16:{ *:[v8f16] } QPR:{ *:[v4f32] }:$src)
/*107893*/          /*Scope*/ 24, /*->107918*/
/*107894*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*107896*/            OPC_EmitInteger, MVT::i32, 0, 
/*107899*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107902*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*107908*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_16), 0,
                          MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v8f16] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV32_16:{ *:[v8f16] } MQPR:{ *:[v4f32] }:$src)
/*107918*/          0, /*End of Scope*/
/*107919*/        0, // EndSwitchType
/*107920*/      /*Scope*/ 59|128,2/*315*/, /*->108237*/
/*107922*/        OPC_CheckChild0Type, MVT::v8f16,
/*107924*/        OPC_SwitchType /*6 cases */, 14, MVT::v8i16,// ->107941
/*107927*/          OPC_Scope, 5, /*->107934*/ // 2 children in Scope
/*107929*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*107931*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v8f16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8i16] }:$src
/*107934*/          /*Scope*/ 5, /*->107940*/
/*107935*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*107937*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v8i16] }:$src
/*107940*/          0, /*End of Scope*/
/*107941*/        /*SwitchType*/ 57, MVT::v2i64,// ->108000
/*107943*/          OPC_Scope, 5, /*->107950*/ // 4 children in Scope
/*107945*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*107947*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v8f16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2i64] }:$src
/*107950*/          /*Scope*/ 5, /*->107956*/
/*107951*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*107953*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v2i64] }:$src
/*107956*/          /*Scope*/ 17, /*->107974*/
/*107957*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*107959*/            OPC_EmitInteger, MVT::i32, 14, 
/*107962*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107965*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q16), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v8f16] }:$src) - Complexity = 3
                      // Dst: (VREV64q16:{ *:[v2i64] } QPR:{ *:[v8f16] }:$src)
/*107974*/          /*Scope*/ 24, /*->107999*/
/*107975*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*107977*/            OPC_EmitInteger, MVT::i32, 0, 
/*107980*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*107983*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*107989*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_16), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v2i64] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_16:{ *:[v2i64] } MQPR:{ *:[v8f16] }:$src)
/*107999*/          0, /*End of Scope*/
/*108000*/        /*SwitchType*/ 57, MVT::v4i32,// ->108059
/*108002*/          OPC_Scope, 5, /*->108009*/ // 4 children in Scope
/*108004*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108006*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v8f16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4i32] }:$src
/*108009*/          /*Scope*/ 5, /*->108015*/
/*108010*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108012*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v4i32] }:$src
/*108015*/          /*Scope*/ 17, /*->108033*/
/*108016*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108018*/            OPC_EmitInteger, MVT::i32, 14, 
/*108021*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108024*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q16), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v8f16] }:$src) - Complexity = 3
                      // Dst: (VREV32q16:{ *:[v4i32] } QPR:{ *:[v8f16] }:$src)
/*108033*/          /*Scope*/ 24, /*->108058*/
/*108034*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108036*/            OPC_EmitInteger, MVT::i32, 0, 
/*108039*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108042*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108048*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_16), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v4i32] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV32_16:{ *:[v4i32] } MQPR:{ *:[v8f16] }:$src)
/*108058*/          0, /*End of Scope*/
/*108059*/        /*SwitchType*/ 57, MVT::v16i8,// ->108118
/*108061*/          OPC_Scope, 5, /*->108068*/ // 4 children in Scope
/*108063*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108065*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v8f16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v16i8] }:$src
/*108068*/          /*Scope*/ 5, /*->108074*/
/*108069*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108071*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v16i8] }:$src
/*108074*/          /*Scope*/ 17, /*->108092*/
/*108075*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108077*/            OPC_EmitInteger, MVT::i32, 14, 
/*108080*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108083*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV16q8), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v8f16] }:$src) - Complexity = 3
                      // Dst: (VREV16q8:{ *:[v16i8] } QPR:{ *:[v8f16] }:$src)
/*108092*/          /*Scope*/ 24, /*->108117*/
/*108093*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108095*/            OPC_EmitInteger, MVT::i32, 0, 
/*108098*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108101*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108107*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV16_8), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v16i8] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV16_8:{ *:[v16i8] } MQPR:{ *:[v8f16] }:$src)
/*108117*/          0, /*End of Scope*/
/*108118*/        /*SwitchType*/ 57, MVT::v2f64,// ->108177
/*108120*/          OPC_Scope, 5, /*->108127*/ // 4 children in Scope
/*108122*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108124*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v8f16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2f64] }:$src
/*108127*/          /*Scope*/ 5, /*->108133*/
/*108128*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108130*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v2f64] }:$src
/*108133*/          /*Scope*/ 17, /*->108151*/
/*108134*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108136*/            OPC_EmitInteger, MVT::i32, 14, 
/*108139*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108142*/            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)
/*108151*/          /*Scope*/ 24, /*->108176*/
/*108152*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108154*/            OPC_EmitInteger, MVT::i32, 0, 
/*108157*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108160*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108166*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_16), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v2f64] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_16:{ *:[v2f64] } MQPR:{ *:[v8f16] }:$src)
/*108176*/          0, /*End of Scope*/
/*108177*/        /*SwitchType*/ 57, MVT::v4f32,// ->108236
/*108179*/          OPC_Scope, 5, /*->108186*/ // 4 children in Scope
/*108181*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108183*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v8f16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4f32] }:$src
/*108186*/          /*Scope*/ 5, /*->108192*/
/*108187*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108189*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v4f32] }:$src
/*108192*/          /*Scope*/ 17, /*->108210*/
/*108193*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108195*/            OPC_EmitInteger, MVT::i32, 14, 
/*108198*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108201*/            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)
/*108210*/          /*Scope*/ 24, /*->108235*/
/*108211*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108213*/            OPC_EmitInteger, MVT::i32, 0, 
/*108216*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108219*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108225*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_16), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v4f32] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV32_16:{ *:[v4f32] } MQPR:{ *:[v8f16] }:$src)
/*108235*/          0, /*End of Scope*/
/*108236*/        0, // EndSwitchType
/*108237*/      /*Scope*/ 59|128,2/*315*/, /*->108554*/
/*108239*/        OPC_CheckChild0Type, MVT::v4i32,
/*108241*/        OPC_SwitchType /*6 cases */, 57, MVT::v2i64,// ->108301
/*108244*/          OPC_Scope, 5, /*->108251*/ // 4 children in Scope
/*108246*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108248*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2i64] }:$src
/*108251*/          /*Scope*/ 5, /*->108257*/
/*108252*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108254*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v2i64] }:$src
/*108257*/          /*Scope*/ 17, /*->108275*/
/*108258*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108260*/            OPC_EmitInteger, MVT::i32, 14, 
/*108263*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108266*/            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)
/*108275*/          /*Scope*/ 24, /*->108300*/
/*108276*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108278*/            OPC_EmitInteger, MVT::i32, 0, 
/*108281*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108284*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108290*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_32), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_32:{ *:[v2i64] } MQPR:{ *:[v4i32] }:$src)
/*108300*/          0, /*End of Scope*/
/*108301*/        /*SwitchType*/ 57, MVT::v8i16,// ->108360
/*108303*/          OPC_Scope, 5, /*->108310*/ // 4 children in Scope
/*108305*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108307*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8i16] }:$src
/*108310*/          /*Scope*/ 5, /*->108316*/
/*108311*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108313*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v8i16] }:$src
/*108316*/          /*Scope*/ 17, /*->108334*/
/*108317*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108319*/            OPC_EmitInteger, MVT::i32, 14, 
/*108322*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108325*/            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)
/*108334*/          /*Scope*/ 24, /*->108359*/
/*108335*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108337*/            OPC_EmitInteger, MVT::i32, 0, 
/*108340*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108343*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108349*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_16), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v8i16] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV32_16:{ *:[v8i16] } MQPR:{ *:[v4i32] }:$src)
/*108359*/          0, /*End of Scope*/
/*108360*/        /*SwitchType*/ 57, MVT::v16i8,// ->108419
/*108362*/          OPC_Scope, 5, /*->108369*/ // 4 children in Scope
/*108364*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108366*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v16i8] }:$src
/*108369*/          /*Scope*/ 5, /*->108375*/
/*108370*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108372*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v16i8] }:$src
/*108375*/          /*Scope*/ 17, /*->108393*/
/*108376*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108378*/            OPC_EmitInteger, MVT::i32, 14, 
/*108381*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108384*/            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)
/*108393*/          /*Scope*/ 24, /*->108418*/
/*108394*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108396*/            OPC_EmitInteger, MVT::i32, 0, 
/*108399*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108402*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108408*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_8), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v16i8] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV32_8:{ *:[v16i8] } MQPR:{ *:[v4i32] }:$src)
/*108418*/          0, /*End of Scope*/
/*108419*/        /*SwitchType*/ 14, MVT::v4f32,// ->108435
/*108421*/          OPC_Scope, 5, /*->108428*/ // 2 children in Scope
/*108423*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*108425*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4f32] }:$src
/*108428*/          /*Scope*/ 5, /*->108434*/
/*108429*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*108431*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v4f32] }:$src
/*108434*/          0, /*End of Scope*/
/*108435*/        /*SwitchType*/ 57, MVT::v2f64,// ->108494
/*108437*/          OPC_Scope, 5, /*->108444*/ // 4 children in Scope
/*108439*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108441*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2f64] }:$src
/*108444*/          /*Scope*/ 5, /*->108450*/
/*108445*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108447*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v2f64] }:$src
/*108450*/          /*Scope*/ 17, /*->108468*/
/*108451*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108453*/            OPC_EmitInteger, MVT::i32, 14, 
/*108456*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108459*/            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)
/*108468*/          /*Scope*/ 24, /*->108493*/
/*108469*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108471*/            OPC_EmitInteger, MVT::i32, 0, 
/*108474*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108477*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108483*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_32), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v2f64] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_32:{ *:[v2f64] } MQPR:{ *:[v4i32] }:$src)
/*108493*/          0, /*End of Scope*/
/*108494*/        /*SwitchType*/ 57, MVT::v8f16,// ->108553
/*108496*/          OPC_Scope, 5, /*->108503*/ // 4 children in Scope
/*108498*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108500*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8f16] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8f16] }:$src
/*108503*/          /*Scope*/ 5, /*->108509*/
/*108504*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108506*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8f16] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v8f16] }:$src
/*108509*/          /*Scope*/ 17, /*->108527*/
/*108510*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108512*/            OPC_EmitInteger, MVT::i32, 14, 
/*108515*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108518*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q16), 0,
                          MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8f16] } QPR:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VREV32q16:{ *:[v8f16] } QPR:{ *:[v4i32] }:$src)
/*108527*/          /*Scope*/ 24, /*->108552*/
/*108528*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108530*/            OPC_EmitInteger, MVT::i32, 0, 
/*108533*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108536*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108542*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_16), 0,
                          MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v8f16] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV32_16:{ *:[v8f16] } MQPR:{ *:[v4i32] }:$src)
/*108552*/          0, /*End of Scope*/
/*108553*/        0, // EndSwitchType
/*108554*/      /*Scope*/ 59|128,2/*315*/, /*->108871*/
/*108556*/        OPC_CheckChild0Type, MVT::v8i16,
/*108558*/        OPC_SwitchType /*6 cases */, 57, MVT::v2i64,// ->108618
/*108561*/          OPC_Scope, 5, /*->108568*/ // 4 children in Scope
/*108563*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108565*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2i64] }:$src
/*108568*/          /*Scope*/ 5, /*->108574*/
/*108569*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108571*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v2i64] }:$src
/*108574*/          /*Scope*/ 17, /*->108592*/
/*108575*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108577*/            OPC_EmitInteger, MVT::i32, 14, 
/*108580*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108583*/            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)
/*108592*/          /*Scope*/ 24, /*->108617*/
/*108593*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108595*/            OPC_EmitInteger, MVT::i32, 0, 
/*108598*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108601*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108607*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_16), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v2i64] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_16:{ *:[v2i64] } MQPR:{ *:[v8i16] }:$src)
/*108617*/          0, /*End of Scope*/
/*108618*/        /*SwitchType*/ 57, MVT::v4i32,// ->108677
/*108620*/          OPC_Scope, 5, /*->108627*/ // 4 children in Scope
/*108622*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108624*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4i32] }:$src
/*108627*/          /*Scope*/ 5, /*->108633*/
/*108628*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108630*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v4i32] }:$src
/*108633*/          /*Scope*/ 17, /*->108651*/
/*108634*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108636*/            OPC_EmitInteger, MVT::i32, 14, 
/*108639*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108642*/            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)
/*108651*/          /*Scope*/ 24, /*->108676*/
/*108652*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108654*/            OPC_EmitInteger, MVT::i32, 0, 
/*108657*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108660*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108666*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_16), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV32_16:{ *:[v4i32] } MQPR:{ *:[v8i16] }:$src)
/*108676*/          0, /*End of Scope*/
/*108677*/        /*SwitchType*/ 57, MVT::v16i8,// ->108736
/*108679*/          OPC_Scope, 5, /*->108686*/ // 4 children in Scope
/*108681*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108683*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v16i8] }:$src
/*108686*/          /*Scope*/ 5, /*->108692*/
/*108687*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108689*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v16i8] }:$src
/*108692*/          /*Scope*/ 17, /*->108710*/
/*108693*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108695*/            OPC_EmitInteger, MVT::i32, 14, 
/*108698*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108701*/            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)
/*108710*/          /*Scope*/ 24, /*->108735*/
/*108711*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108713*/            OPC_EmitInteger, MVT::i32, 0, 
/*108716*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108719*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108725*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV16_8), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v16i8] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV16_8:{ *:[v16i8] } MQPR:{ *:[v8i16] }:$src)
/*108735*/          0, /*End of Scope*/
/*108736*/        /*SwitchType*/ 14, MVT::v8f16,// ->108752
/*108738*/          OPC_Scope, 5, /*->108745*/ // 2 children in Scope
/*108740*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*108742*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8f16] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8f16] }:$src
/*108745*/          /*Scope*/ 5, /*->108751*/
/*108746*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*108748*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v8f16] }:$src
/*108751*/          0, /*End of Scope*/
/*108752*/        /*SwitchType*/ 57, MVT::v2f64,// ->108811
/*108754*/          OPC_Scope, 5, /*->108761*/ // 4 children in Scope
/*108756*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108758*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2f64] }:$src
/*108761*/          /*Scope*/ 5, /*->108767*/
/*108762*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108764*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v2f64] }:$src
/*108767*/          /*Scope*/ 17, /*->108785*/
/*108768*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108770*/            OPC_EmitInteger, MVT::i32, 14, 
/*108773*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108776*/            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)
/*108785*/          /*Scope*/ 24, /*->108810*/
/*108786*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108788*/            OPC_EmitInteger, MVT::i32, 0, 
/*108791*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108794*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108800*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_16), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v2f64] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_16:{ *:[v2f64] } MQPR:{ *:[v8i16] }:$src)
/*108810*/          0, /*End of Scope*/
/*108811*/        /*SwitchType*/ 57, MVT::v4f32,// ->108870
/*108813*/          OPC_Scope, 5, /*->108820*/ // 4 children in Scope
/*108815*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108817*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4f32] }:$src
/*108820*/          /*Scope*/ 5, /*->108826*/
/*108821*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108823*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v4f32] }:$src
/*108826*/          /*Scope*/ 17, /*->108844*/
/*108827*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108829*/            OPC_EmitInteger, MVT::i32, 14, 
/*108832*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108835*/            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)
/*108844*/          /*Scope*/ 24, /*->108869*/
/*108845*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108847*/            OPC_EmitInteger, MVT::i32, 0, 
/*108850*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108853*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108859*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_16), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v4f32] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV32_16:{ *:[v4f32] } MQPR:{ *:[v8i16] }:$src)
/*108869*/          0, /*End of Scope*/
/*108870*/        0, // EndSwitchType
/*108871*/      /*Scope*/ 102|128,2/*358*/, /*->109231*/
/*108873*/        OPC_CheckChild0Type, MVT::v16i8,
/*108875*/        OPC_SwitchType /*6 cases */, 57, MVT::v2i64,// ->108935
/*108878*/          OPC_Scope, 5, /*->108885*/ // 4 children in Scope
/*108880*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108882*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2i64] }:$src
/*108885*/          /*Scope*/ 5, /*->108891*/
/*108886*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108888*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2i64] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v2i64] }:$src
/*108891*/          /*Scope*/ 17, /*->108909*/
/*108892*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108894*/            OPC_EmitInteger, MVT::i32, 14, 
/*108897*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108900*/            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)
/*108909*/          /*Scope*/ 24, /*->108934*/
/*108910*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108912*/            OPC_EmitInteger, MVT::i32, 0, 
/*108915*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108918*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108924*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_8), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v2i64] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_8:{ *:[v2i64] } MQPR:{ *:[v16i8] }:$src)
/*108934*/          0, /*End of Scope*/
/*108935*/        /*SwitchType*/ 57, MVT::v4i32,// ->108994
/*108937*/          OPC_Scope, 5, /*->108944*/ // 4 children in Scope
/*108939*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*108941*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4i32] }:$src
/*108944*/          /*Scope*/ 5, /*->108950*/
/*108945*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*108947*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v4i32] }:$src
/*108950*/          /*Scope*/ 17, /*->108968*/
/*108951*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*108953*/            OPC_EmitInteger, MVT::i32, 14, 
/*108956*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108959*/            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)
/*108968*/          /*Scope*/ 24, /*->108993*/
/*108969*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*108971*/            OPC_EmitInteger, MVT::i32, 0, 
/*108974*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*108977*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*108983*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_8), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v4i32] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV32_8:{ *:[v4i32] } MQPR:{ *:[v16i8] }:$src)
/*108993*/          0, /*End of Scope*/
/*108994*/        /*SwitchType*/ 57, MVT::v8i16,// ->109053
/*108996*/          OPC_Scope, 5, /*->109003*/ // 4 children in Scope
/*108998*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*109000*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8i16] }:$src
/*109003*/          /*Scope*/ 5, /*->109009*/
/*109004*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*109006*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v8i16] }:$src
/*109009*/          /*Scope*/ 17, /*->109027*/
/*109010*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*109012*/            OPC_EmitInteger, MVT::i32, 14, 
/*109015*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109018*/            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)
/*109027*/          /*Scope*/ 24, /*->109052*/
/*109028*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*109030*/            OPC_EmitInteger, MVT::i32, 0, 
/*109033*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109036*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*109042*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV16_8), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV16_8:{ *:[v8i16] } MQPR:{ *:[v16i8] }:$src)
/*109052*/          0, /*End of Scope*/
/*109053*/        /*SwitchType*/ 57, MVT::v2f64,// ->109112
/*109055*/          OPC_Scope, 5, /*->109062*/ // 4 children in Scope
/*109057*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*109059*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2f64] }:$src
/*109062*/          /*Scope*/ 5, /*->109068*/
/*109063*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*109065*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v2f64] }:$src
/*109068*/          /*Scope*/ 17, /*->109086*/
/*109069*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*109071*/            OPC_EmitInteger, MVT::i32, 14, 
/*109074*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109077*/            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)
/*109086*/          /*Scope*/ 24, /*->109111*/
/*109087*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*109089*/            OPC_EmitInteger, MVT::i32, 0, 
/*109092*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109095*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*109101*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_8), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v2f64] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_8:{ *:[v2f64] } MQPR:{ *:[v16i8] }:$src)
/*109111*/          0, /*End of Scope*/
/*109112*/        /*SwitchType*/ 57, MVT::v4f32,// ->109171
/*109114*/          OPC_Scope, 5, /*->109121*/ // 4 children in Scope
/*109116*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*109118*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4f32] }:$src
/*109121*/          /*Scope*/ 5, /*->109127*/
/*109122*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*109124*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v4f32] }:$src
/*109127*/          /*Scope*/ 17, /*->109145*/
/*109128*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*109130*/            OPC_EmitInteger, MVT::i32, 14, 
/*109133*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109136*/            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)
/*109145*/          /*Scope*/ 24, /*->109170*/
/*109146*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*109148*/            OPC_EmitInteger, MVT::i32, 0, 
/*109151*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109154*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*109160*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_8), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v4f32] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV32_8:{ *:[v4f32] } MQPR:{ *:[v16i8] }:$src)
/*109170*/          0, /*End of Scope*/
/*109171*/        /*SwitchType*/ 57, MVT::v8f16,// ->109230
/*109173*/          OPC_Scope, 5, /*->109180*/ // 4 children in Scope
/*109175*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*109177*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8f16] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8f16] }:$src
/*109180*/          /*Scope*/ 5, /*->109186*/
/*109181*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*109183*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8f16] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v8f16] }:$src
/*109186*/          /*Scope*/ 17, /*->109204*/
/*109187*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*109189*/            OPC_EmitInteger, MVT::i32, 14, 
/*109192*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109195*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV16q8), 0,
                          MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8f16] } QPR:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VREV16q8:{ *:[v8f16] } QPR:{ *:[v16i8] }:$src)
/*109204*/          /*Scope*/ 24, /*->109229*/
/*109205*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*109207*/            OPC_EmitInteger, MVT::i32, 0, 
/*109210*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109213*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*109219*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV16_8), 0,
                          MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v8f16] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV16_8:{ *:[v8f16] } MQPR:{ *:[v16i8] }:$src)
/*109229*/          0, /*End of Scope*/
/*109230*/        0, // EndSwitchType
/*109231*/      /*Scope*/ 59|128,2/*315*/, /*->109548*/
/*109233*/        OPC_CheckChild0Type, MVT::v2i64,
/*109235*/        OPC_SwitchType /*6 cases */, 57, MVT::v4i32,// ->109295
/*109238*/          OPC_Scope, 5, /*->109245*/ // 4 children in Scope
/*109240*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*109242*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4i32] }:$src
/*109245*/          /*Scope*/ 5, /*->109251*/
/*109246*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*109248*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4i32] } MQPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v4i32] }:$src
/*109251*/          /*Scope*/ 17, /*->109269*/
/*109252*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*109254*/            OPC_EmitInteger, MVT::i32, 14, 
/*109257*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109260*/            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)
/*109269*/          /*Scope*/ 24, /*->109294*/
/*109270*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*109272*/            OPC_EmitInteger, MVT::i32, 0, 
/*109275*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109278*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*109284*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_32), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v4i32] } MQPR:{ *:[v2i64] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_32:{ *:[v4i32] } MQPR:{ *:[v2i64] }:$src)
/*109294*/          0, /*End of Scope*/
/*109295*/        /*SwitchType*/ 57, MVT::v8i16,// ->109354
/*109297*/          OPC_Scope, 5, /*->109304*/ // 4 children in Scope
/*109299*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*109301*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8i16] }:$src
/*109304*/          /*Scope*/ 5, /*->109310*/
/*109305*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*109307*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8i16] } MQPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v8i16] }:$src
/*109310*/          /*Scope*/ 17, /*->109328*/
/*109311*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*109313*/            OPC_EmitInteger, MVT::i32, 14, 
/*109316*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109319*/            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)
/*109328*/          /*Scope*/ 24, /*->109353*/
/*109329*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*109331*/            OPC_EmitInteger, MVT::i32, 0, 
/*109334*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109337*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*109343*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_16), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v8i16] } MQPR:{ *:[v2i64] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_16:{ *:[v8i16] } MQPR:{ *:[v2i64] }:$src)
/*109353*/          0, /*End of Scope*/
/*109354*/        /*SwitchType*/ 57, MVT::v16i8,// ->109413
/*109356*/          OPC_Scope, 5, /*->109363*/ // 4 children in Scope
/*109358*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*109360*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v16i8] }:$src
/*109363*/          /*Scope*/ 5, /*->109369*/
/*109364*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*109366*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v16i8] } MQPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v16i8] }:$src
/*109369*/          /*Scope*/ 17, /*->109387*/
/*109370*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*109372*/            OPC_EmitInteger, MVT::i32, 14, 
/*109375*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109378*/            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)
/*109387*/          /*Scope*/ 24, /*->109412*/
/*109388*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*109390*/            OPC_EmitInteger, MVT::i32, 0, 
/*109393*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109396*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*109402*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_8), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v16i8] } MQPR:{ *:[v2i64] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_8:{ *:[v16i8] } MQPR:{ *:[v2i64] }:$src)
/*109412*/          0, /*End of Scope*/
/*109413*/        /*SwitchType*/ 14, MVT::v2f64,// ->109429
/*109415*/          OPC_Scope, 5, /*->109422*/ // 2 children in Scope
/*109417*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*109419*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v2f64] }:$src
/*109422*/          /*Scope*/ 5, /*->109428*/
/*109423*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109425*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v2f64] } MQPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v2f64] }:$src
/*109428*/          0, /*End of Scope*/
/*109429*/        /*SwitchType*/ 57, MVT::v4f32,// ->109488
/*109431*/          OPC_Scope, 5, /*->109438*/ // 4 children in Scope
/*109433*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*109435*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v4f32] }:$src
/*109438*/          /*Scope*/ 5, /*->109444*/
/*109439*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*109441*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v4f32] } MQPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v4f32] }:$src
/*109444*/          /*Scope*/ 17, /*->109462*/
/*109445*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*109447*/            OPC_EmitInteger, MVT::i32, 14, 
/*109450*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109453*/            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)
/*109462*/          /*Scope*/ 24, /*->109487*/
/*109463*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*109465*/            OPC_EmitInteger, MVT::i32, 0, 
/*109468*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109471*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*109477*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_32), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v4f32] } MQPR:{ *:[v2i64] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_32:{ *:[v4f32] } MQPR:{ *:[v2i64] }:$src)
/*109487*/          0, /*End of Scope*/
/*109488*/        /*SwitchType*/ 57, MVT::v8f16,// ->109547
/*109490*/          OPC_Scope, 5, /*->109497*/ // 4 children in Scope
/*109492*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian())
/*109494*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8f16] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: QPR:{ *:[v8f16] }:$src
/*109497*/          /*Scope*/ 5, /*->109503*/
/*109498*/            OPC_CheckPatternPredicate, 40, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian())
/*109500*/            OPC_CompleteMatch, 1, 0, 
                       // Src: (bitconvert:{ *:[v8f16] } MQPR:{ *:[v2i64] }:$src) - Complexity = 3
                       // Dst: MQPR:{ *:[v8f16] }:$src
/*109503*/          /*Scope*/ 17, /*->109521*/
/*109504*/            OPC_CheckPatternPredicate, 38, // (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian())
/*109506*/            OPC_EmitInteger, MVT::i32, 14, 
/*109509*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109512*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q16), 0,
                          MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8f16] } QPR:{ *:[v2i64] }:$src) - Complexity = 3
                      // Dst: (VREV64q16:{ *:[v8f16] } QPR:{ *:[v2i64] }:$src)
/*109521*/          /*Scope*/ 24, /*->109546*/
/*109522*/            OPC_CheckPatternPredicate, 41, // (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian())
/*109524*/            OPC_EmitInteger, MVT::i32, 0, 
/*109527*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109530*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*109536*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_16), 0,
                          MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (bitconvert:{ *:[v8f16] } MQPR:{ *:[v2i64] }:$src) - Complexity = 3
                      // Dst: (MVE_VREV64_16:{ *:[v8f16] } MQPR:{ *:[v2i64] }:$src)
/*109546*/          0, /*End of Scope*/
/*109547*/        0, // EndSwitchType
/*109548*/      0, /*End of Scope*/
/*109549*/    0, /*End of Scope*/
/*109550*/  /*SwitchOpcode*/ 19, TARGET_VAL(ARMISD::VMOVRRD),// ->109572
/*109553*/    OPC_RecordChild0, // #0 = $Dm
/*109554*/    OPC_CheckPatternPredicate, 36, // (Subtarget->hasFPRegs())
/*109556*/    OPC_EmitInteger, MVT::i32, 14, 
/*109559*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109562*/    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)
/*109572*/  /*SwitchOpcode*/ 20, TARGET_VAL(ARMISD::VMOVrh),// ->109595
/*109575*/    OPC_RecordChild0, // #0 = $Sn
/*109576*/    OPC_CheckChild0Type, MVT::f16,
/*109578*/    OPC_CheckPatternPredicate, 39, // (Subtarget->hasFPRegs16())
/*109580*/    OPC_EmitInteger, MVT::i32, 14, 
/*109583*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109586*/    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)
/*109595*/  /*SwitchOpcode*/ 17, TARGET_VAL(ARMISD::FMSTAT),// ->109615
/*109598*/    OPC_CaptureGlueInput,
/*109599*/    OPC_CheckPatternPredicate, 36, // (Subtarget->hasFPRegs())
/*109601*/    OPC_EmitInteger, MVT::i32, 14, 
/*109604*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109607*/    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] })
/*109615*/  /*SwitchOpcode*/ 65, TARGET_VAL(ISD::VECREDUCE_ADD),// ->109683
/*109618*/    OPC_RecordChild0, // #0 = $src
/*109619*/    OPC_CheckType, MVT::i32,
/*109621*/    OPC_Scope, 19, /*->109642*/ // 3 children in Scope
/*109623*/      OPC_CheckChild0Type, MVT::v4i32,
/*109625*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109627*/      OPC_EmitInteger, MVT::i32, 0, 
/*109630*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109633*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDVu32no_acc), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (vecreduce_add:{ *:[i32] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                // Dst: (MVE_VADDVu32no_acc:{ *:[i32] } ?:{ *:[v4i32] }:$src)
/*109642*/    /*Scope*/ 19, /*->109662*/
/*109643*/      OPC_CheckChild0Type, MVT::v8i16,
/*109645*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109647*/      OPC_EmitInteger, MVT::i32, 0, 
/*109650*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109653*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDVu16no_acc), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (vecreduce_add:{ *:[i32] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                // Dst: (MVE_VADDVu16no_acc:{ *:[i32] } ?:{ *:[v8i16] }:$src)
/*109662*/    /*Scope*/ 19, /*->109682*/
/*109663*/      OPC_CheckChild0Type, MVT::v16i8,
/*109665*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109667*/      OPC_EmitInteger, MVT::i32, 0, 
/*109670*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109673*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDVu8no_acc), 0,
                    MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (vecreduce_add:{ *:[i32] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                // Dst: (MVE_VADDVu8no_acc:{ *:[i32] } ?:{ *:[v16i8] }:$src)
/*109682*/    0, /*End of Scope*/
/*109683*/  /*SwitchOpcode*/ 120|128,1/*248*/, TARGET_VAL(ARMISD::PREDICATE_CAST),// ->109935
/*109687*/    OPC_RecordChild0, // #0 = $src
/*109688*/    OPC_Scope, 64, /*->109754*/ // 4 children in Scope
/*109690*/      OPC_CheckChild0Type, MVT::v4i1,
/*109692*/      OPC_SwitchType /*4 cases */, 13, MVT::i32,// ->109708
/*109695*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109697*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109700*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[i32] } VCCR:{ *:[v4i1] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v4i1] }:$src, VCCR:{ *:[i32] })
/*109708*/      /*SwitchType*/ 13, MVT::v4i1,// ->109723
/*109710*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109712*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109715*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } VCCR:{ *:[v4i1] }:$src, VCCR:{ *:[i32] })
/*109723*/      /*SwitchType*/ 13, MVT::v8i1,// ->109738
/*109725*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109727*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109730*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[v8i1] } VCCR:{ *:[v4i1] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VCCR:{ *:[v4i1] }:$src, VCCR:{ *:[i32] })
/*109738*/      /*SwitchType*/ 13, MVT::v16i1,// ->109753
/*109740*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109742*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109745*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[v16i1] } VCCR:{ *:[v4i1] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VCCR:{ *:[v4i1] }:$src, VCCR:{ *:[i32] })
/*109753*/      0, // EndSwitchType
/*109754*/    /*Scope*/ 64, /*->109819*/
/*109755*/      OPC_CheckChild0Type, MVT::v8i1,
/*109757*/      OPC_SwitchType /*4 cases */, 13, MVT::i32,// ->109773
/*109760*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109762*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109765*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[i32] } VCCR:{ *:[v8i1] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v8i1] }:$src, VCCR:{ *:[i32] })
/*109773*/      /*SwitchType*/ 13, MVT::v4i1,// ->109788
/*109775*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109777*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109780*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[v4i1] } VCCR:{ *:[v8i1] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } VCCR:{ *:[v8i1] }:$src, VCCR:{ *:[i32] })
/*109788*/      /*SwitchType*/ 13, MVT::v8i1,// ->109803
/*109790*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109792*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109795*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VCCR:{ *:[v8i1] }:$src, VCCR:{ *:[i32] })
/*109803*/      /*SwitchType*/ 13, MVT::v16i1,// ->109818
/*109805*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109807*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109810*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[v16i1] } VCCR:{ *:[v8i1] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VCCR:{ *:[v8i1] }:$src, VCCR:{ *:[i32] })
/*109818*/      0, // EndSwitchType
/*109819*/    /*Scope*/ 64, /*->109884*/
/*109820*/      OPC_CheckChild0Type, MVT::v16i1,
/*109822*/      OPC_SwitchType /*4 cases */, 13, MVT::i32,// ->109838
/*109825*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109827*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109830*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[i32] } VCCR:{ *:[v16i1] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[i32] } VCCR:{ *:[v16i1] }:$src, VCCR:{ *:[i32] })
/*109838*/      /*SwitchType*/ 13, MVT::v4i1,// ->109853
/*109840*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109842*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109845*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[v4i1] } VCCR:{ *:[v16i1] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } VCCR:{ *:[v16i1] }:$src, VCCR:{ *:[i32] })
/*109853*/      /*SwitchType*/ 13, MVT::v8i1,// ->109868
/*109855*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109857*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109860*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[v8i1] } VCCR:{ *:[v16i1] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VCCR:{ *:[v16i1] }:$src, VCCR:{ *:[i32] })
/*109868*/      /*SwitchType*/ 13, MVT::v16i1,// ->109883
/*109870*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109872*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109875*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VCCR:{ *:[v16i1] }:$src, VCCR:{ *:[i32] })
/*109883*/      0, // EndSwitchType
/*109884*/    /*Scope*/ 49, /*->109934*/
/*109885*/      OPC_CheckChild0Type, MVT::i32,
/*109887*/      OPC_SwitchType /*3 cases */, 13, MVT::v4i1,// ->109903
/*109890*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109892*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109895*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[v4i1] } VCCR:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } VCCR:{ *:[i32] }:$src, VCCR:{ *:[i32] })
/*109903*/      /*SwitchType*/ 13, MVT::v8i1,// ->109918
/*109905*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109907*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109910*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[v8i1] } VCCR:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VCCR:{ *:[i32] }:$src, VCCR:{ *:[i32] })
/*109918*/      /*SwitchType*/ 13, MVT::v16i1,// ->109933
/*109920*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*109922*/        OPC_EmitInteger, MVT::i32, ARM::VCCRRegClassID,
/*109925*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1, 
                  // Src: (predicate_cast:{ *:[v16i1] } VCCR:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VCCR:{ *:[i32] }:$src, VCCR:{ *:[i32] })
/*109933*/      0, // EndSwitchType
/*109934*/    0, /*End of Scope*/
/*109935*/  /*SwitchOpcode*/ 67, TARGET_VAL(ISD::FP_TO_FP16),// ->110005
/*109938*/    OPC_RecordChild0, // #0 = $a
/*109939*/    OPC_CheckType, MVT::i32,
/*109941*/    OPC_Scope, 30, /*->109973*/ // 2 children in Scope
/*109943*/      OPC_CheckChild0Type, MVT::f32,
/*109945*/      OPC_CheckPatternPredicate, 96, // (Subtarget->hasFP16())
/*109947*/      OPC_EmitInteger, MVT::i32, 14, 
/*109950*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109953*/      OPC_EmitNode1, TARGET_VAL(ARM::VCVTBSH), 0,
                    MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/*109962*/      OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*109965*/      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] })
/*109973*/    /*Scope*/ 30, /*->110004*/
/*109974*/      OPC_CheckChild0Type, MVT::f64,
/*109976*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*109978*/      OPC_EmitInteger, MVT::i32, 14, 
/*109981*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*109984*/      OPC_EmitNode1, TARGET_VAL(ARM::VCVTBDH), 0,
                    MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/*109993*/      OPC_EmitInteger, MVT::i32, ARM::GPRRegClassID,
/*109996*/      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] })
/*110004*/    0, /*End of Scope*/
/*110005*/  /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(ISD::VECREDUCE_SMAX),// ->110149
/*110009*/    OPC_RecordChild0, // #0 = $src
/*110010*/    OPC_CheckType, MVT::i32,
/*110012*/    OPC_Scope, 42, /*->110056*/ // 3 children in Scope
/*110014*/      OPC_CheckChild0Type, MVT::v16i8,
/*110016*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*110018*/      OPC_EmitInteger, MVT::i32, 127, 
/*110021*/      OPC_EmitInteger, MVT::i32, 14, 
/*110024*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110027*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110030*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MVNi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*110040*/      OPC_EmitInteger, MVT::i32, 0, 
/*110043*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110046*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXVs8), 0,
                    MVT::i32, 4/*#Ops*/, 5, 0, 6, 7, 
                // Src: (vecreduce_smax:{ *:[i32] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                // Dst: (MVE_VMAXVs8:{ *:[i32] } (t2MVNi:{ *:[i32] } 127:{ *:[i32] }), ?:{ *:[v16i8] }:$src)
/*110056*/    /*Scope*/ 39, /*->110096*/
/*110057*/      OPC_CheckChild0Type, MVT::v8i16,
/*110059*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*110061*/      OPC_EmitInteger, MVT::i32, 0|128,0|128,126|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709518848*/, 
/*110073*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi32imm), 0,
                    MVT::i32, 1/*#Ops*/, 1,  // Results = #2
/*110080*/      OPC_EmitInteger, MVT::i32, 0, 
/*110083*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110086*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXVs16), 0,
                    MVT::i32, 4/*#Ops*/, 2, 0, 3, 4, 
                // Src: (vecreduce_smax:{ *:[i32] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                // Dst: (MVE_VMAXVs16:{ *:[i32] } (t2MOVi32imm:{ *:[i32] } -32768:{ *:[i32] }), ?:{ *:[v8i16] }:$src)
/*110096*/    /*Scope*/ 51, /*->110148*/
/*110097*/      OPC_CheckChild0Type, MVT::v4i32,
/*110099*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*110101*/      OPC_EmitInteger, MVT::i32, 0|128,0|128,0|128,0|128,120|128,127|128,127|128,127|128,127|128,1/*18446744071562067968*/, 
/*110113*/      OPC_EmitInteger, MVT::i32, 14, 
/*110116*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110119*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110122*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*110132*/      OPC_EmitInteger, MVT::i32, 0, 
/*110135*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110138*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXVs32), 0,
                    MVT::i32, 4/*#Ops*/, 5, 0, 6, 7, 
                // Src: (vecreduce_smax:{ *:[i32] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                // Dst: (MVE_VMAXVs32:{ *:[i32] } (t2MOVi:{ *:[i32] } -2147483648:{ *:[i32] }), ?:{ *:[v4i32] }:$src)
/*110148*/    0, /*End of Scope*/
/*110149*/  /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(ISD::VECREDUCE_UMAX),// ->110287
/*110153*/    OPC_RecordChild0, // #0 = $src
/*110154*/    OPC_CheckType, MVT::i32,
/*110156*/    OPC_Scope, 42, /*->110200*/ // 3 children in Scope
/*110158*/      OPC_CheckChild0Type, MVT::v16i8,
/*110160*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*110162*/      OPC_EmitInteger, MVT::i32, 0, 
/*110165*/      OPC_EmitInteger, MVT::i32, 14, 
/*110168*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110171*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110174*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*110184*/      OPC_EmitInteger, MVT::i32, 0, 
/*110187*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110190*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXVu8), 0,
                    MVT::i32, 4/*#Ops*/, 5, 0, 6, 7, 
                // Src: (vecreduce_umax:{ *:[i32] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                // Dst: (MVE_VMAXVu8:{ *:[i32] } (t2MOVi:{ *:[i32] } 0:{ *:[i32] }), ?:{ *:[v16i8] }:$src)
/*110200*/    /*Scope*/ 42, /*->110243*/
/*110201*/      OPC_CheckChild0Type, MVT::v8i16,
/*110203*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*110205*/      OPC_EmitInteger, MVT::i32, 0, 
/*110208*/      OPC_EmitInteger, MVT::i32, 14, 
/*110211*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110214*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110217*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*110227*/      OPC_EmitInteger, MVT::i32, 0, 
/*110230*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110233*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXVu16), 0,
                    MVT::i32, 4/*#Ops*/, 5, 0, 6, 7, 
                // Src: (vecreduce_umax:{ *:[i32] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                // Dst: (MVE_VMAXVu16:{ *:[i32] } (t2MOVi:{ *:[i32] } 0:{ *:[i32] }), ?:{ *:[v8i16] }:$src)
/*110243*/    /*Scope*/ 42, /*->110286*/
/*110244*/      OPC_CheckChild0Type, MVT::v4i32,
/*110246*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*110248*/      OPC_EmitInteger, MVT::i32, 0, 
/*110251*/      OPC_EmitInteger, MVT::i32, 14, 
/*110254*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110257*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110260*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*110270*/      OPC_EmitInteger, MVT::i32, 0, 
/*110273*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110276*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXVu32), 0,
                    MVT::i32, 4/*#Ops*/, 5, 0, 6, 7, 
                // Src: (vecreduce_umax:{ *:[i32] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                // Dst: (MVE_VMAXVu32:{ *:[i32] } (t2MOVi:{ *:[i32] } 0:{ *:[i32] }), ?:{ *:[v4i32] }:$src)
/*110286*/    0, /*End of Scope*/
/*110287*/  /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(ISD::VECREDUCE_SMIN),// ->110432
/*110291*/    OPC_RecordChild0, // #0 = $src
/*110292*/    OPC_CheckType, MVT::i32,
/*110294*/    OPC_Scope, 42, /*->110338*/ // 3 children in Scope
/*110296*/      OPC_CheckChild0Type, MVT::v16i8,
/*110298*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*110300*/      OPC_EmitInteger, MVT::i32, 127, 
/*110303*/      OPC_EmitInteger, MVT::i32, 14, 
/*110306*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110309*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110312*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*110322*/      OPC_EmitInteger, MVT::i32, 0, 
/*110325*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110328*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINVs8), 0,
                    MVT::i32, 4/*#Ops*/, 5, 0, 6, 7, 
                // Src: (vecreduce_smin:{ *:[i32] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                // Dst: (MVE_VMINVs8:{ *:[i32] } (t2MOVi:{ *:[i32] } 127:{ *:[i32] }), ?:{ *:[v16i8] }:$src)
/*110338*/    /*Scope*/ 40, /*->110379*/
/*110339*/      OPC_CheckChild0Type, MVT::v8i16,
/*110341*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*110343*/      OPC_EmitInteger, MVT::i32, 127|128,127|128,1/*32767*/, 
/*110348*/      OPC_EmitInteger, MVT::i32, 14, 
/*110351*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110354*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi16), 0,
                    MVT::i32, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/*110363*/      OPC_EmitInteger, MVT::i32, 0, 
/*110366*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110369*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINVs16), 0,
                    MVT::i32, 4/*#Ops*/, 4, 0, 5, 6, 
                // Src: (vecreduce_smin:{ *:[i32] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                // Dst: (MVE_VMINVs16:{ *:[i32] } (t2MOVi16:{ *:[i32] } 32767:{ *:[i32] }), ?:{ *:[v8i16] }:$src)
/*110379*/    /*Scope*/ 51, /*->110431*/
/*110380*/      OPC_CheckChild0Type, MVT::v4i32,
/*110382*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*110384*/      OPC_EmitInteger, MVT::i32, 0|128,0|128,0|128,0|128,120|128,127|128,127|128,127|128,127|128,1/*18446744071562067968*/, 
/*110396*/      OPC_EmitInteger, MVT::i32, 14, 
/*110399*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110402*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110405*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MVNi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*110415*/      OPC_EmitInteger, MVT::i32, 0, 
/*110418*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110421*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINVs32), 0,
                    MVT::i32, 4/*#Ops*/, 5, 0, 6, 7, 
                // Src: (vecreduce_smin:{ *:[i32] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                // Dst: (MVE_VMINVs32:{ *:[i32] } (t2MVNi:{ *:[i32] } -2147483648:{ *:[i32] }), ?:{ *:[v4i32] }:$src)
/*110431*/    0, /*End of Scope*/
/*110432*/  /*SwitchOpcode*/ 9|128,1/*137*/, TARGET_VAL(ISD::VECREDUCE_UMIN),// ->110573
/*110436*/    OPC_RecordChild0, // #0 = $src
/*110437*/    OPC_CheckType, MVT::i32,
/*110439*/    OPC_Scope, 43, /*->110484*/ // 3 children in Scope
/*110441*/      OPC_CheckChild0Type, MVT::v16i8,
/*110443*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*110445*/      OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/*110449*/      OPC_EmitInteger, MVT::i32, 14, 
/*110452*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110455*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110458*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*110468*/      OPC_EmitInteger, MVT::i32, 0, 
/*110471*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110474*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINVu8), 0,
                    MVT::i32, 4/*#Ops*/, 5, 0, 6, 7, 
                // Src: (vecreduce_umin:{ *:[i32] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                // Dst: (MVE_VMINVu8:{ *:[i32] } (t2MOVi:{ *:[i32] } 255:{ *:[i32] }), ?:{ *:[v16i8] }:$src)
/*110484*/    /*Scope*/ 40, /*->110525*/
/*110485*/      OPC_CheckChild0Type, MVT::v8i16,
/*110487*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*110489*/      OPC_EmitInteger, MVT::i32, 127|128,127|128,3/*65535*/, 
/*110494*/      OPC_EmitInteger, MVT::i32, 14, 
/*110497*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110500*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi16), 0,
                    MVT::i32, 3/*#Ops*/, 1, 2, 3,  // Results = #4
/*110509*/      OPC_EmitInteger, MVT::i32, 0, 
/*110512*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110515*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINVu16), 0,
                    MVT::i32, 4/*#Ops*/, 4, 0, 5, 6, 
                // Src: (vecreduce_umin:{ *:[i32] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                // Dst: (MVE_VMINVu16:{ *:[i32] } (t2MOVi16:{ *:[i32] } 65535:{ *:[i32] }), ?:{ *:[v8i16] }:$src)
/*110525*/    /*Scope*/ 46, /*->110572*/
/*110526*/      OPC_CheckChild0Type, MVT::v4i32,
/*110528*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*110530*/      OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,15/*4294967295*/, 
/*110537*/      OPC_EmitInteger, MVT::i32, 14, 
/*110540*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110543*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110546*/      OPC_EmitNode1, TARGET_VAL(ARM::t2MOVi), 0,
                    MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*110556*/      OPC_EmitInteger, MVT::i32, 0, 
/*110559*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110562*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINVu32), 0,
                    MVT::i32, 4/*#Ops*/, 5, 0, 6, 7, 
                // Src: (vecreduce_umin:{ *:[i32] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                // Dst: (MVE_VMINVu32:{ *:[i32] } (t2MOVi:{ *:[i32] } 4294967295:{ *:[i32] }), ?:{ *:[v4i32] }:$src)
/*110572*/    0, /*End of Scope*/
/*110573*/  /*SwitchOpcode*/ 8, TARGET_VAL(ARMISD::WIN__CHKSTK),// ->110584
/*110576*/    OPC_RecordNode, // #0 = 'win__chkstk' chained node
/*110577*/    OPC_EmitMergeInputChains1_0,
/*110578*/    OPC_MorphNodeTo1, TARGET_VAL(ARM::WIN__CHKSTK), 0|OPFL_Chain,
                  MVT::i32, 0/*#Ops*/, 
              // Src: (win__chkstk) - Complexity = 3
              // Dst: (WIN__CHKSTK:{ *:[i32] })
/*110584*/  /*SwitchOpcode*/ 10, TARGET_VAL(ARMISD::WIN__DBZCHK),// ->110597
/*110587*/    OPC_RecordNode, // #0 = 'win__dbzchk' chained node
/*110588*/    OPC_RecordChild1, // #1 = $divisor
/*110589*/    OPC_EmitMergeInputChains1_0,
/*110590*/    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)
/*110597*/  /*SwitchOpcode*/ 71, TARGET_VAL(ARMISD::EH_SJLJ_SETJMP),// ->110671
/*110600*/    OPC_RecordNode, // #0 = 'ARMeh_sjlj_setjmp' chained node
/*110601*/    OPC_RecordChild1, // #1 = $src
/*110602*/    OPC_CheckChild1Type, MVT::i32,
/*110604*/    OPC_RecordChild2, // #2 = $val
/*110605*/    OPC_CheckChild2Type, MVT::i32,
/*110607*/    OPC_CheckType, MVT::i32,
/*110609*/    OPC_Scope, 11, /*->110622*/ // 5 children in Scope
/*110611*/      OPC_CheckPatternPredicate, 97, // (Subtarget->hasVFP2Base()) && (!Subtarget->isThumb())
/*110613*/      OPC_EmitMergeInputChains1_0,
/*110614*/      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)
/*110622*/    /*Scope*/ 11, /*->110634*/
/*110623*/      OPC_CheckPatternPredicate, 98, // (!Subtarget->isThumb()) && (!Subtarget->hasVFP2Base())
/*110625*/      OPC_EmitMergeInputChains1_0,
/*110626*/      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)
/*110634*/    /*Scope*/ 11, /*->110646*/
/*110635*/      OPC_CheckPatternPredicate, 6, // (Subtarget->isThumb()) && (Subtarget->isThumb1Only())
/*110637*/      OPC_EmitMergeInputChains1_0,
/*110638*/      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)
/*110646*/    /*Scope*/ 11, /*->110658*/
/*110647*/      OPC_CheckPatternPredicate, 99, // (Subtarget->hasVFP2Base()) && (Subtarget->isThumb2())
/*110649*/      OPC_EmitMergeInputChains1_0,
/*110650*/      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)
/*110658*/    /*Scope*/ 11, /*->110670*/
/*110659*/      OPC_CheckPatternPredicate, 100, // (Subtarget->isThumb2()) && (!Subtarget->hasVFP2Base())
/*110661*/      OPC_EmitMergeInputChains1_0,
/*110662*/      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)
/*110670*/    0, /*End of Scope*/
/*110671*/  /*SwitchOpcode*/ 7, TARGET_VAL(ARMISD::EH_SJLJ_SETUP_DISPATCH),// ->110681
/*110674*/    OPC_RecordNode, // #0 = 'ARMeh_sjlj_setup_dispatch' chained node
/*110675*/    OPC_EmitMergeInputChains1_0,
/*110676*/    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)
/*110681*/  /*SwitchOpcode*/ 120|128,4/*632*/, TARGET_VAL(ISD::SINT_TO_FP),// ->111317
/*110685*/    OPC_Scope, 60|128,1/*188*/, /*->110876*/ // 2 children in Scope
/*110688*/      OPC_MoveChild0,
/*110689*/      OPC_SwitchOpcode /*2 cases */, 92, TARGET_VAL(ISD::LOAD),// ->110785
/*110693*/        OPC_RecordMemRef,
/*110694*/        OPC_RecordNode, // #0 = 'ld' chained node
/*110695*/        OPC_RecordChild1, // #1 = $a
/*110696*/        OPC_CheckChild1Type, MVT::i32,
/*110698*/        OPC_CheckPredicate, 37, // Predicate_unindexedload
/*110700*/        OPC_CheckPredicate, 60, // Predicate_load
/*110702*/        OPC_CheckPredicate, 64, // Predicate_alignedload32
/*110704*/        OPC_MoveParent,
/*110705*/        OPC_SwitchType /*2 cases */, 37, MVT::f64,// ->110745
/*110708*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*110710*/          OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectAddrMode5:$a #2 #3
/*110713*/          OPC_EmitMergeInputChains1_0,
/*110714*/          OPC_EmitInteger, MVT::i32, 14, 
/*110717*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110720*/          OPC_EmitNode1, TARGET_VAL(ARM::VLDRS), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/*110730*/          OPC_EmitInteger, MVT::i32, 14, 
/*110733*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110736*/          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))
/*110745*/        /*SwitchType*/ 37, MVT::f32,// ->110784
/*110747*/          OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*110749*/          OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectAddrMode5:$a #2 #3
/*110752*/          OPC_EmitMergeInputChains1_0,
/*110753*/          OPC_EmitInteger, MVT::i32, 14, 
/*110756*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110759*/          OPC_EmitNode1, TARGET_VAL(ARM::VLDRS), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/*110769*/          OPC_EmitInteger, MVT::i32, 14, 
/*110772*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110775*/          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))
/*110784*/        0, // EndSwitchType
/*110785*/      /*SwitchOpcode*/ 87, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->110875
/*110788*/        OPC_RecordChild0, // #0 = $src
/*110789*/        OPC_Scope, 41, /*->110832*/ // 2 children in Scope
/*110791*/          OPC_CheckChild0Type, MVT::v2i32,
/*110793*/          OPC_RecordChild1, // #1 = $lane
/*110794*/          OPC_MoveChild1,
/*110795*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*110798*/          OPC_MoveParent,
/*110799*/          OPC_MoveParent,
/*110800*/          OPC_CheckType, MVT::f64,
/*110802*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasVFP2Base())
/*110804*/          OPC_EmitConvertToTarget, 1,
/*110806*/          OPC_EmitNodeXForm, 17, 2, // SSubReg_f32_reg
/*110809*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*110817*/          OPC_EmitInteger, MVT::i32, 14, 
/*110820*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110823*/          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)))
/*110832*/        /*Scope*/ 41, /*->110874*/
/*110833*/          OPC_CheckChild0Type, MVT::v4i32,
/*110835*/          OPC_RecordChild1, // #1 = $lane
/*110836*/          OPC_MoveChild1,
/*110837*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*110840*/          OPC_MoveParent,
/*110841*/          OPC_MoveParent,
/*110842*/          OPC_CheckType, MVT::f64,
/*110844*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasVFP2Base())
/*110846*/          OPC_EmitConvertToTarget, 1,
/*110848*/          OPC_EmitNodeXForm, 17, 2, // SSubReg_f32_reg
/*110851*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*110859*/          OPC_EmitInteger, MVT::i32, 14, 
/*110862*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110865*/          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)))
/*110874*/        0, /*End of Scope*/
/*110875*/      0, // EndSwitchOpcode
/*110876*/    /*Scope*/ 54|128,3/*438*/, /*->111316*/
/*110878*/      OPC_RecordChild0, // #0 = $a
/*110879*/      OPC_SwitchType /*7 cases */, 28, MVT::f64,// ->110910
/*110882*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*110884*/        OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/*110887*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*110895*/        OPC_EmitInteger, MVT::i32, 14, 
/*110898*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110901*/        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] }))
/*110910*/      /*SwitchType*/ 89, MVT::f32,// ->111001
/*110912*/        OPC_Scope, 28, /*->110942*/ // 2 children in Scope
/*110914*/          OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*110916*/          OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/*110919*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*110927*/          OPC_EmitInteger, MVT::i32, 14, 
/*110930*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110933*/          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] }))
/*110942*/        /*Scope*/ 57, /*->111000*/
/*110943*/          OPC_CheckPatternPredicate, 83, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/*110945*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #1
/*110951*/          OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/*110954*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*110962*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*110965*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 1, 3, 4,  // Results = #5
/*110974*/          OPC_EmitInteger, MVT::i32, 14, 
/*110977*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*110980*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTs2fd), 0,
                        MVT::v2f32, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/*110989*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*110992*/          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] })
/*111000*/        0, /*End of Scope*/
/*111001*/      /*SwitchType*/ 28, MVT::f16,// ->111031
/*111003*/        OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*111005*/        OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/*111008*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*111016*/        OPC_EmitInteger, MVT::i32, 14, 
/*111019*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111022*/        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] }))
/*111031*/      /*SwitchType*/ 19, MVT::v2f32,// ->111052
/*111033*/        OPC_CheckChild0Type, MVT::v2i32,
/*111035*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*111037*/        OPC_EmitInteger, MVT::i32, 14, 
/*111040*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111043*/        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)
/*111052*/      /*SwitchType*/ 119, MVT::v4f32,// ->111173
/*111054*/        OPC_Scope, 47, /*->111103*/ // 2 children in Scope
/*111056*/          OPC_CheckChild0Type, MVT::v4i32,
/*111058*/          OPC_Scope, 17, /*->111077*/ // 2 children in Scope
/*111060*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*111062*/            OPC_EmitInteger, MVT::i32, 14, 
/*111065*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111068*/            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)
/*111077*/          /*Scope*/ 24, /*->111102*/
/*111078*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*111080*/            OPC_EmitInteger, MVT::i32, 0, 
/*111083*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111086*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*111092*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCVTf32s32n), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (sint_to_fp:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (MVE_VCVTf32s32n:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src)
/*111102*/          0, /*End of Scope*/
/*111103*/        /*Scope*/ 68, /*->111172*/
/*111104*/          OPC_CheckChild0Type, MVT::v4i1,
/*111106*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*111108*/          OPC_EmitInteger, MVT::i32, 112|128,1/*240*/, 
/*111112*/          OPC_EmitInteger, MVT::i32, 0, 
/*111115*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111118*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*111124*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmf32), 0,
                        MVT::v4f32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*111134*/          OPC_EmitInteger, MVT::i32, 0, 
/*111137*/          OPC_EmitInteger, MVT::i32, 0, 
/*111140*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111143*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #9
/*111149*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi32), 0,
                        MVT::v4f32, 4/*#Ops*/, 6, 7, 8, 9,  // Results = #10
/*111159*/          OPC_EmitInteger, MVT::i32, 0, 
/*111162*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                        MVT::v4f32, 4/*#Ops*/, 5, 10, 11, 0, 
                    // Src: (sint_to_fp:{ *:[v4f32] } VCCR:{ *:[v4i1] }:$pred) - Complexity = 3
                    // Dst: (MVE_VPSEL:{ *:[v4f32] } (MVE_VMOVimmf32:{ *:[v4f32] } 240:{ *:[i32] }), (MVE_VMOVimmi32:{ *:[v4f32] } 0:{ *:[i32] }), 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*111172*/        0, /*End of Scope*/
/*111173*/      /*SwitchType*/ 19, MVT::v4f16,// ->111194
/*111175*/        OPC_CheckChild0Type, MVT::v4i16,
/*111177*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*111179*/        OPC_EmitInteger, MVT::i32, 14, 
/*111182*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111185*/        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)
/*111194*/      /*SwitchType*/ 119, MVT::v8f16,// ->111315
/*111196*/        OPC_Scope, 47, /*->111245*/ // 2 children in Scope
/*111198*/          OPC_CheckChild0Type, MVT::v8i16,
/*111200*/          OPC_Scope, 17, /*->111219*/ // 2 children in Scope
/*111202*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*111204*/            OPC_EmitInteger, MVT::i32, 14, 
/*111207*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111210*/            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)
/*111219*/          /*Scope*/ 24, /*->111244*/
/*111220*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*111222*/            OPC_EmitInteger, MVT::i32, 0, 
/*111225*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111228*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*111234*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCVTf16s16n), 0,
                          MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (sint_to_fp:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (MVE_VCVTf16s16n:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src)
/*111244*/          0, /*End of Scope*/
/*111245*/        /*Scope*/ 68, /*->111314*/
/*111246*/          OPC_CheckChild0Type, MVT::v8i1,
/*111248*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*111250*/          OPC_EmitInteger, MVT::i32, 60|128,21/*2748*/, 
/*111254*/          OPC_EmitInteger, MVT::i32, 0, 
/*111257*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111260*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*111266*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi16), 0,
                        MVT::v8f16, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*111276*/          OPC_EmitInteger, MVT::i32, 0, 
/*111279*/          OPC_EmitInteger, MVT::i32, 0, 
/*111282*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111285*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #9
/*111291*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi16), 0,
                        MVT::v8f16, 4/*#Ops*/, 6, 7, 8, 9,  // Results = #10
/*111301*/          OPC_EmitInteger, MVT::i32, 0, 
/*111304*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                        MVT::v8f16, 4/*#Ops*/, 5, 10, 11, 0, 
                    // Src: (sint_to_fp:{ *:[v8f16] } VCCR:{ *:[v8i1] }:$pred) - Complexity = 3
                    // Dst: (MVE_VPSEL:{ *:[v8f16] } (MVE_VMOVimmi16:{ *:[v8f16] } 2748:{ *:[i32] }), (MVE_VMOVimmi16:{ *:[v8f16] } 0:{ *:[i32] }), 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/*111314*/        0, /*End of Scope*/
/*111315*/      0, // EndSwitchType
/*111316*/    0, /*End of Scope*/
/*111317*/  /*SwitchOpcode*/ 119|128,4/*631*/, TARGET_VAL(ISD::UINT_TO_FP),// ->111952
/*111321*/    OPC_Scope, 60|128,1/*188*/, /*->111512*/ // 2 children in Scope
/*111324*/      OPC_MoveChild0,
/*111325*/      OPC_SwitchOpcode /*2 cases */, 92, TARGET_VAL(ISD::LOAD),// ->111421
/*111329*/        OPC_RecordMemRef,
/*111330*/        OPC_RecordNode, // #0 = 'ld' chained node
/*111331*/        OPC_RecordChild1, // #1 = $a
/*111332*/        OPC_CheckChild1Type, MVT::i32,
/*111334*/        OPC_CheckPredicate, 37, // Predicate_unindexedload
/*111336*/        OPC_CheckPredicate, 60, // Predicate_load
/*111338*/        OPC_CheckPredicate, 64, // Predicate_alignedload32
/*111340*/        OPC_MoveParent,
/*111341*/        OPC_SwitchType /*2 cases */, 37, MVT::f64,// ->111381
/*111344*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*111346*/          OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectAddrMode5:$a #2 #3
/*111349*/          OPC_EmitMergeInputChains1_0,
/*111350*/          OPC_EmitInteger, MVT::i32, 14, 
/*111353*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111356*/          OPC_EmitNode1, TARGET_VAL(ARM::VLDRS), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/*111366*/          OPC_EmitInteger, MVT::i32, 14, 
/*111369*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111372*/          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))
/*111381*/        /*SwitchType*/ 37, MVT::f32,// ->111420
/*111383*/          OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*111385*/          OPC_CheckComplexPat, /*CP*/22, /*#*/1, // SelectAddrMode5:$a #2 #3
/*111388*/          OPC_EmitMergeInputChains1_0,
/*111389*/          OPC_EmitInteger, MVT::i32, 14, 
/*111392*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111395*/          OPC_EmitNode1, TARGET_VAL(ARM::VLDRS), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 4/*#Ops*/, 2, 3, 4, 5,  // Results = #6
/*111405*/          OPC_EmitInteger, MVT::i32, 14, 
/*111408*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111411*/          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))
/*111420*/        0, // EndSwitchType
/*111421*/      /*SwitchOpcode*/ 87, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->111511
/*111424*/        OPC_RecordChild0, // #0 = $src
/*111425*/        OPC_Scope, 41, /*->111468*/ // 2 children in Scope
/*111427*/          OPC_CheckChild0Type, MVT::v2i32,
/*111429*/          OPC_RecordChild1, // #1 = $lane
/*111430*/          OPC_MoveChild1,
/*111431*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*111434*/          OPC_MoveParent,
/*111435*/          OPC_MoveParent,
/*111436*/          OPC_CheckType, MVT::f64,
/*111438*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasVFP2Base())
/*111440*/          OPC_EmitConvertToTarget, 1,
/*111442*/          OPC_EmitNodeXForm, 17, 2, // SSubReg_f32_reg
/*111445*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*111453*/          OPC_EmitInteger, MVT::i32, 14, 
/*111456*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111459*/          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)))
/*111468*/        /*Scope*/ 41, /*->111510*/
/*111469*/          OPC_CheckChild0Type, MVT::v4i32,
/*111471*/          OPC_RecordChild1, // #1 = $lane
/*111472*/          OPC_MoveChild1,
/*111473*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*111476*/          OPC_MoveParent,
/*111477*/          OPC_MoveParent,
/*111478*/          OPC_CheckType, MVT::f64,
/*111480*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasVFP2Base())
/*111482*/          OPC_EmitConvertToTarget, 1,
/*111484*/          OPC_EmitNodeXForm, 17, 2, // SSubReg_f32_reg
/*111487*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*111495*/          OPC_EmitInteger, MVT::i32, 14, 
/*111498*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111501*/          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)))
/*111510*/        0, /*End of Scope*/
/*111511*/      0, // EndSwitchOpcode
/*111512*/    /*Scope*/ 53|128,3/*437*/, /*->111951*/
/*111514*/      OPC_RecordChild0, // #0 = $a
/*111515*/      OPC_SwitchType /*7 cases */, 28, MVT::f64,// ->111546
/*111518*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*111520*/        OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/*111523*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*111531*/        OPC_EmitInteger, MVT::i32, 14, 
/*111534*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111537*/        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] }))
/*111546*/      /*SwitchType*/ 89, MVT::f32,// ->111637
/*111548*/        OPC_Scope, 28, /*->111578*/ // 2 children in Scope
/*111550*/          OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*111552*/          OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/*111555*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*111563*/          OPC_EmitInteger, MVT::i32, 14, 
/*111566*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111569*/          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] }))
/*111578*/        /*Scope*/ 57, /*->111636*/
/*111579*/          OPC_CheckPatternPredicate, 83, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/*111581*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #1
/*111587*/          OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/*111590*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/*111598*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*111601*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 1, 3, 4,  // Results = #5
/*111610*/          OPC_EmitInteger, MVT::i32, 14, 
/*111613*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111616*/          OPC_EmitNode1, TARGET_VAL(ARM::VCVTu2fd), 0,
                        MVT::v2f32, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/*111625*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*111628*/          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] })
/*111636*/        0, /*End of Scope*/
/*111637*/      /*SwitchType*/ 28, MVT::f16,// ->111667
/*111639*/        OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*111641*/        OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/*111644*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*111652*/        OPC_EmitInteger, MVT::i32, 14, 
/*111655*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111658*/        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] }))
/*111667*/      /*SwitchType*/ 19, MVT::v2f32,// ->111688
/*111669*/        OPC_CheckChild0Type, MVT::v2i32,
/*111671*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*111673*/        OPC_EmitInteger, MVT::i32, 14, 
/*111676*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111679*/        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)
/*111688*/      /*SwitchType*/ 118, MVT::v4f32,// ->111808
/*111690*/        OPC_Scope, 47, /*->111739*/ // 2 children in Scope
/*111692*/          OPC_CheckChild0Type, MVT::v4i32,
/*111694*/          OPC_Scope, 17, /*->111713*/ // 2 children in Scope
/*111696*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*111698*/            OPC_EmitInteger, MVT::i32, 14, 
/*111701*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111704*/            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)
/*111713*/          /*Scope*/ 24, /*->111738*/
/*111714*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*111716*/            OPC_EmitInteger, MVT::i32, 0, 
/*111719*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111722*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*111728*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCVTf32u32n), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (uint_to_fp:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (MVE_VCVTf32u32n:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$src)
/*111738*/          0, /*End of Scope*/
/*111739*/        /*Scope*/ 67, /*->111807*/
/*111740*/          OPC_CheckChild0Type, MVT::v4i1,
/*111742*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*111744*/          OPC_EmitInteger, MVT::i32, 112, 
/*111747*/          OPC_EmitInteger, MVT::i32, 0, 
/*111750*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111753*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*111759*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmf32), 0,
                        MVT::v4f32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*111769*/          OPC_EmitInteger, MVT::i32, 0, 
/*111772*/          OPC_EmitInteger, MVT::i32, 0, 
/*111775*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111778*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #9
/*111784*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi32), 0,
                        MVT::v4f32, 4/*#Ops*/, 6, 7, 8, 9,  // Results = #10
/*111794*/          OPC_EmitInteger, MVT::i32, 0, 
/*111797*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                        MVT::v4f32, 4/*#Ops*/, 5, 10, 11, 0, 
                    // Src: (uint_to_fp:{ *:[v4f32] } VCCR:{ *:[v4i1] }:$pred) - Complexity = 3
                    // Dst: (MVE_VPSEL:{ *:[v4f32] } (MVE_VMOVimmf32:{ *:[v4f32] } 112:{ *:[i32] }), (MVE_VMOVimmi32:{ *:[v4f32] } 0:{ *:[i32] }), 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*111807*/        0, /*End of Scope*/
/*111808*/      /*SwitchType*/ 19, MVT::v4f16,// ->111829
/*111810*/        OPC_CheckChild0Type, MVT::v4i16,
/*111812*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*111814*/        OPC_EmitInteger, MVT::i32, 14, 
/*111817*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111820*/        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)
/*111829*/      /*SwitchType*/ 119, MVT::v8f16,// ->111950
/*111831*/        OPC_Scope, 47, /*->111880*/ // 2 children in Scope
/*111833*/          OPC_CheckChild0Type, MVT::v8i16,
/*111835*/          OPC_Scope, 17, /*->111854*/ // 2 children in Scope
/*111837*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*111839*/            OPC_EmitInteger, MVT::i32, 14, 
/*111842*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111845*/            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)
/*111854*/          /*Scope*/ 24, /*->111879*/
/*111855*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*111857*/            OPC_EmitInteger, MVT::i32, 0, 
/*111860*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111863*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*111869*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCVTf16u16n), 0,
                          MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (uint_to_fp:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (MVE_VCVTf16u16n:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$src)
/*111879*/          0, /*End of Scope*/
/*111880*/        /*Scope*/ 68, /*->111949*/
/*111881*/          OPC_CheckChild0Type, MVT::v8i1,
/*111883*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*111885*/          OPC_EmitInteger, MVT::i32, 60|128,20/*2620*/, 
/*111889*/          OPC_EmitInteger, MVT::i32, 0, 
/*111892*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111895*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*111901*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi16), 0,
                        MVT::v8f16, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*111911*/          OPC_EmitInteger, MVT::i32, 0, 
/*111914*/          OPC_EmitInteger, MVT::i32, 0, 
/*111917*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111920*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #9
/*111926*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi16), 0,
                        MVT::v8f16, 4/*#Ops*/, 6, 7, 8, 9,  // Results = #10
/*111936*/          OPC_EmitInteger, MVT::i32, 0, 
/*111939*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                        MVT::v8f16, 4/*#Ops*/, 5, 10, 11, 0, 
                    // Src: (uint_to_fp:{ *:[v8f16] } VCCR:{ *:[v8i1] }:$pred) - Complexity = 3
                    // Dst: (MVE_VPSEL:{ *:[v8f16] } (MVE_VMOVimmi16:{ *:[v8f16] } 2620:{ *:[i32] }), (MVE_VMOVimmi16:{ *:[v8f16] } 0:{ *:[i32] }), 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/*111949*/        0, /*End of Scope*/
/*111950*/      0, // EndSwitchType
/*111951*/    0, /*End of Scope*/
/*111952*/  /*SwitchOpcode*/ 16|128,23/*2960*/, TARGET_VAL(ISD::FADD),// ->114916
/*111956*/    OPC_Scope, 23|128,1/*151*/, /*->112110*/ // 24 children in Scope
/*111959*/      OPC_MoveChild0,
/*111960*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/*111963*/      OPC_MoveChild0,
/*111964*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*111967*/      OPC_RecordChild0, // #0 = $Dn
/*111968*/      OPC_RecordChild1, // #1 = $Dm
/*111969*/      OPC_CheckPredicate, 59, // Predicate_fmul_su
/*111971*/      OPC_MoveParent,
/*111972*/      OPC_MoveParent,
/*111973*/      OPC_RecordChild1, // #2 = $Ddin
/*111974*/      OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*111976*/      OPC_SwitchType /*3 cases */, 42, MVT::f64,// ->112021
/*111979*/        OPC_Scope, 19, /*->112000*/ // 2 children in Scope
/*111981*/          OPC_CheckPatternPredicate, 101, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*111983*/          OPC_EmitInteger, MVT::i32, 14, 
/*111986*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*111989*/          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)
/*112000*/        /*Scope*/ 19, /*->112020*/
/*112001*/          OPC_CheckPatternPredicate, 102, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*112003*/          OPC_EmitInteger, MVT::i32, 14, 
/*112006*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112009*/          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)
/*112020*/        0, /*End of Scope*/
/*112021*/      /*SwitchType*/ 42, MVT::f32,// ->112065
/*112023*/        OPC_Scope, 19, /*->112044*/ // 2 children in Scope
/*112025*/          OPC_CheckPatternPredicate, 103, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*112027*/          OPC_EmitInteger, MVT::i32, 14, 
/*112030*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112033*/          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)
/*112044*/        /*Scope*/ 19, /*->112064*/
/*112045*/          OPC_CheckPatternPredicate, 104, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*112047*/          OPC_EmitInteger, MVT::i32, 14, 
/*112050*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112053*/          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)
/*112064*/        0, /*End of Scope*/
/*112065*/      /*SwitchType*/ 42, MVT::f16,// ->112109
/*112067*/        OPC_Scope, 19, /*->112088*/ // 2 children in Scope
/*112069*/          OPC_CheckPatternPredicate, 105, // (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*112071*/          OPC_EmitInteger, MVT::i32, 14, 
/*112074*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112077*/          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)
/*112088*/        /*Scope*/ 19, /*->112108*/
/*112089*/          OPC_CheckPatternPredicate, 106, // (Subtarget->hasFullFP16()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*112091*/          OPC_EmitInteger, MVT::i32, 14, 
/*112094*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112097*/          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)
/*112108*/        0, /*End of Scope*/
/*112109*/      0, // EndSwitchType
/*112110*/    /*Scope*/ 23|128,1/*151*/, /*->112263*/
/*112112*/      OPC_RecordChild0, // #0 = $Ddin
/*112113*/      OPC_MoveChild1,
/*112114*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/*112117*/      OPC_MoveChild0,
/*112118*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*112121*/      OPC_RecordChild0, // #1 = $Dn
/*112122*/      OPC_RecordChild1, // #2 = $Dm
/*112123*/      OPC_CheckPredicate, 59, // Predicate_fmul_su
/*112125*/      OPC_MoveParent,
/*112126*/      OPC_MoveParent,
/*112127*/      OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*112129*/      OPC_SwitchType /*3 cases */, 42, MVT::f64,// ->112174
/*112132*/        OPC_Scope, 19, /*->112153*/ // 2 children in Scope
/*112134*/          OPC_CheckPatternPredicate, 101, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*112136*/          OPC_EmitInteger, MVT::i32, 14, 
/*112139*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112142*/          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)
/*112153*/        /*Scope*/ 19, /*->112173*/
/*112154*/          OPC_CheckPatternPredicate, 102, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*112156*/          OPC_EmitInteger, MVT::i32, 14, 
/*112159*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112162*/          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)
/*112173*/        0, /*End of Scope*/
/*112174*/      /*SwitchType*/ 42, MVT::f32,// ->112218
/*112176*/        OPC_Scope, 19, /*->112197*/ // 2 children in Scope
/*112178*/          OPC_CheckPatternPredicate, 103, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*112180*/          OPC_EmitInteger, MVT::i32, 14, 
/*112183*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112186*/          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)
/*112197*/        /*Scope*/ 19, /*->112217*/
/*112198*/          OPC_CheckPatternPredicate, 104, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*112200*/          OPC_EmitInteger, MVT::i32, 14, 
/*112203*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112206*/          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)
/*112217*/        0, /*End of Scope*/
/*112218*/      /*SwitchType*/ 42, MVT::f16,// ->112262
/*112220*/        OPC_Scope, 19, /*->112241*/ // 2 children in Scope
/*112222*/          OPC_CheckPatternPredicate, 105, // (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*112224*/          OPC_EmitInteger, MVT::i32, 14, 
/*112227*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112230*/          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)
/*112241*/        /*Scope*/ 19, /*->112261*/
/*112242*/          OPC_CheckPatternPredicate, 106, // (Subtarget->hasFullFP16()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*112244*/          OPC_EmitInteger, MVT::i32, 14, 
/*112247*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112250*/          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)
/*112261*/        0, /*End of Scope*/
/*112262*/      0, // EndSwitchType
/*112263*/    /*Scope*/ 77, /*->112341*/
/*112264*/      OPC_MoveChild0,
/*112265*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*112268*/      OPC_RecordChild0, // #0 = $Dn
/*112269*/      OPC_RecordChild1, // #1 = $Dm
/*112270*/      OPC_CheckPredicate, 59, // Predicate_fmul_su
/*112272*/      OPC_MoveParent,
/*112273*/      OPC_RecordChild1, // #2 = $Ddin
/*112274*/      OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*112276*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->112298
/*112279*/        OPC_CheckPatternPredicate, 101, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*112281*/        OPC_EmitInteger, MVT::i32, 14, 
/*112284*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112287*/        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)
/*112298*/      /*SwitchType*/ 19, MVT::f32,// ->112319
/*112300*/        OPC_CheckPatternPredicate, 103, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*112302*/        OPC_EmitInteger, MVT::i32, 14, 
/*112305*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112308*/        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)
/*112319*/      /*SwitchType*/ 19, MVT::f16,// ->112340
/*112321*/        OPC_CheckPatternPredicate, 105, // (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*112323*/        OPC_EmitInteger, MVT::i32, 14, 
/*112326*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112329*/        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)
/*112340*/      0, // EndSwitchType
/*112341*/    /*Scope*/ 77, /*->112419*/
/*112342*/      OPC_RecordChild0, // #0 = $dstin
/*112343*/      OPC_MoveChild1,
/*112344*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*112347*/      OPC_RecordChild0, // #1 = $a
/*112348*/      OPC_RecordChild1, // #2 = $b
/*112349*/      OPC_CheckPredicate, 59, // Predicate_fmul_su
/*112351*/      OPC_MoveParent,
/*112352*/      OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*112354*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->112376
/*112357*/        OPC_CheckPatternPredicate, 101, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*112359*/        OPC_EmitInteger, MVT::i32, 14, 
/*112362*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112365*/        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)
/*112376*/      /*SwitchType*/ 19, MVT::f32,// ->112397
/*112378*/        OPC_CheckPatternPredicate, 103, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*112380*/        OPC_EmitInteger, MVT::i32, 14, 
/*112383*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112386*/        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)
/*112397*/      /*SwitchType*/ 19, MVT::f16,// ->112418
/*112399*/        OPC_CheckPatternPredicate, 107, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*112401*/        OPC_EmitInteger, MVT::i32, 14, 
/*112404*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112407*/        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)
/*112418*/      0, // EndSwitchType
/*112419*/    /*Scope*/ 77, /*->112497*/
/*112420*/      OPC_MoveChild0,
/*112421*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*112424*/      OPC_RecordChild0, // #0 = $Dn
/*112425*/      OPC_RecordChild1, // #1 = $Dm
/*112426*/      OPC_CheckPredicate, 59, // Predicate_fmul_su
/*112428*/      OPC_MoveParent,
/*112429*/      OPC_RecordChild1, // #2 = $Ddin
/*112430*/      OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*112432*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->112454
/*112435*/        OPC_CheckPatternPredicate, 102, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*112437*/        OPC_EmitInteger, MVT::i32, 14, 
/*112440*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112443*/        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)
/*112454*/      /*SwitchType*/ 19, MVT::f32,// ->112475
/*112456*/        OPC_CheckPatternPredicate, 104, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*112458*/        OPC_EmitInteger, MVT::i32, 14, 
/*112461*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112464*/        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)
/*112475*/      /*SwitchType*/ 19, MVT::f16,// ->112496
/*112477*/        OPC_CheckPatternPredicate, 106, // (Subtarget->hasFullFP16()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*112479*/        OPC_EmitInteger, MVT::i32, 14, 
/*112482*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112485*/        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)
/*112496*/      0, // EndSwitchType
/*112497*/    /*Scope*/ 120, /*->112618*/
/*112498*/      OPC_RecordChild0, // #0 = $dstin
/*112499*/      OPC_MoveChild1,
/*112500*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*112503*/      OPC_RecordChild0, // #1 = $a
/*112504*/      OPC_RecordChild1, // #2 = $b
/*112505*/      OPC_CheckPredicate, 59, // Predicate_fmul_su
/*112507*/      OPC_MoveParent,
/*112508*/      OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*112510*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->112532
/*112513*/        OPC_CheckPatternPredicate, 102, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*112515*/        OPC_EmitInteger, MVT::i32, 14, 
/*112518*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112521*/        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)
/*112532*/      /*SwitchType*/ 19, MVT::f32,// ->112553
/*112534*/        OPC_CheckPatternPredicate, 104, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*112536*/        OPC_EmitInteger, MVT::i32, 14, 
/*112539*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112542*/        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)
/*112553*/      /*SwitchType*/ 62, MVT::f16,// ->112617
/*112555*/        OPC_Scope, 19, /*->112576*/ // 3 children in Scope
/*112557*/          OPC_CheckPatternPredicate, 108, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*112559*/          OPC_EmitInteger, MVT::i32, 14, 
/*112562*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112565*/          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)
/*112576*/        /*Scope*/ 19, /*->112596*/
/*112577*/          OPC_CheckPatternPredicate, 105, // (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*112579*/          OPC_EmitInteger, MVT::i32, 14, 
/*112582*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112585*/          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)
/*112596*/        /*Scope*/ 19, /*->112616*/
/*112597*/          OPC_CheckPatternPredicate, 106, // (Subtarget->hasFullFP16()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*112599*/          OPC_EmitInteger, MVT::i32, 14, 
/*112602*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112605*/          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)
/*112616*/        0, /*End of Scope*/
/*112617*/      0, // EndSwitchType
/*112618*/    /*Scope*/ 56, /*->112675*/
/*112619*/      OPC_MoveChild0,
/*112620*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*112623*/      OPC_RecordChild0, // #0 = $a
/*112624*/      OPC_RecordChild1, // #1 = $b
/*112625*/      OPC_CheckPredicate, 59, // Predicate_fmul_su
/*112627*/      OPC_MoveParent,
/*112628*/      OPC_RecordChild1, // #2 = $dstin
/*112629*/      OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*112631*/      OPC_CheckType, MVT::f16,
/*112633*/      OPC_Scope, 19, /*->112654*/ // 2 children in Scope
/*112635*/        OPC_CheckPatternPredicate, 107, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*112637*/        OPC_EmitInteger, MVT::i32, 14, 
/*112640*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112643*/        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)
/*112654*/      /*Scope*/ 19, /*->112674*/
/*112655*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*112657*/        OPC_EmitInteger, MVT::i32, 14, 
/*112660*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112663*/        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)
/*112674*/      0, /*End of Scope*/
/*112675*/    /*Scope*/ 16|128,2/*272*/, /*->112949*/
/*112677*/      OPC_RecordChild0, // #0 = $acc
/*112678*/      OPC_MoveChild1,
/*112679*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*112682*/      OPC_RecordChild0, // #1 = $a
/*112683*/      OPC_RecordChild1, // #2 = $b
/*112684*/      OPC_MoveParent,
/*112685*/      OPC_CheckType, MVT::f32,
/*112687*/      OPC_Scope, 0|128,1/*128*/, /*->112818*/ // 2 children in Scope
/*112690*/        OPC_CheckPatternPredicate, 109, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize())) && (Subtarget->useNEONForSinglePrecisionFP())
/*112692*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #3
/*112698*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*112701*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*112709*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*112712*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/*112721*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #8
/*112727*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*112730*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/*112738*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*112741*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 10, 1, 11,  // Results = #12
/*112750*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #13
/*112756*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*112759*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 13, 14,  // Results = #15
/*112767*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*112770*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 15, 2, 16,  // Results = #17
/*112779*/        OPC_EmitInteger, MVT::i32, 14, 
/*112782*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112785*/        OPC_EmitNode1, TARGET_VAL(ARM::VMLAfd), 0,
                      MVT::f64, 5/*#Ops*/, 7, 12, 17, 18, 19,  // Results = #20
/*112796*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*112799*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 20, 21,  // Results = #22
/*112807*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*112810*/        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] })
/*112818*/      /*Scope*/ 0|128,1/*128*/, /*->112948*/
/*112820*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx()) && (Subtarget->useNEONForSinglePrecisionFP())
/*112822*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #3
/*112828*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*112831*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*112839*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*112842*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/*112851*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #8
/*112857*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*112860*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/*112868*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*112871*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 10, 1, 11,  // Results = #12
/*112880*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #13
/*112886*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*112889*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 13, 14,  // Results = #15
/*112897*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*112900*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 15, 2, 16,  // Results = #17
/*112909*/        OPC_EmitInteger, MVT::i32, 14, 
/*112912*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*112915*/        OPC_EmitNode1, TARGET_VAL(ARM::VFMAfd), 0,
                      MVT::f64, 5/*#Ops*/, 7, 12, 17, 18, 19,  // Results = #20
/*112926*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*112929*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 20, 21,  // Results = #22
/*112937*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*112940*/        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] })
/*112948*/      0, /*End of Scope*/
/*112949*/    /*Scope*/ 16|128,2/*272*/, /*->113223*/
/*112951*/      OPC_MoveChild0,
/*112952*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*112955*/      OPC_RecordChild0, // #0 = $a
/*112956*/      OPC_RecordChild1, // #1 = $b
/*112957*/      OPC_MoveParent,
/*112958*/      OPC_RecordChild1, // #2 = $acc
/*112959*/      OPC_CheckType, MVT::f32,
/*112961*/      OPC_Scope, 0|128,1/*128*/, /*->113092*/ // 2 children in Scope
/*112964*/        OPC_CheckPatternPredicate, 109, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize())) && (Subtarget->useNEONForSinglePrecisionFP())
/*112966*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #3
/*112972*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*112975*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*112983*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*112986*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 5, 2, 6,  // Results = #7
/*112995*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #8
/*113001*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*113004*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/*113012*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*113015*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 10, 0, 11,  // Results = #12
/*113024*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #13
/*113030*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*113033*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 13, 14,  // Results = #15
/*113041*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*113044*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 15, 1, 16,  // Results = #17
/*113053*/        OPC_EmitInteger, MVT::i32, 14, 
/*113056*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113059*/        OPC_EmitNode1, TARGET_VAL(ARM::VMLAfd), 0,
                      MVT::f64, 5/*#Ops*/, 7, 12, 17, 18, 19,  // Results = #20
/*113070*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*113073*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 20, 21,  // Results = #22
/*113081*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*113084*/        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] })
/*113092*/      /*Scope*/ 0|128,1/*128*/, /*->113222*/
/*113094*/        OPC_CheckPatternPredicate, 110, // (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx()) && (Subtarget->useNEONForSinglePrecisionFP())
/*113096*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #3
/*113102*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*113105*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*113113*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*113116*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 5, 2, 6,  // Results = #7
/*113125*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #8
/*113131*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*113134*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/*113142*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*113145*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 10, 0, 11,  // Results = #12
/*113154*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #13
/*113160*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*113163*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 13, 14,  // Results = #15
/*113171*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*113174*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v2f32, 3/*#Ops*/, 15, 1, 16,  // Results = #17
/*113183*/        OPC_EmitInteger, MVT::i32, 14, 
/*113186*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113189*/        OPC_EmitNode1, TARGET_VAL(ARM::VFMAfd), 0,
                      MVT::f64, 5/*#Ops*/, 7, 12, 17, 18, 19,  // Results = #20
/*113200*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*113203*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 20, 21,  // Results = #22
/*113211*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*113214*/        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] })
/*113222*/      0, /*End of Scope*/
/*113223*/    /*Scope*/ 37|128,2/*293*/, /*->113518*/
/*113225*/      OPC_RecordChild0, // #0 = $Dn
/*113226*/      OPC_Scope, 37|128,1/*165*/, /*->113394*/ // 2 children in Scope
/*113229*/        OPC_RecordChild1, // #1 = $Dm
/*113230*/        OPC_SwitchType /*3 cases */, 18, MVT::f64,// ->113251
/*113233*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*113235*/          OPC_EmitInteger, MVT::i32, 14, 
/*113238*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113241*/          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)
/*113251*/        /*SwitchType*/ 120, MVT::f32,// ->113373
/*113253*/          OPC_Scope, 18, /*->113273*/ // 2 children in Scope
/*113255*/            OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*113257*/            OPC_EmitInteger, MVT::i32, 14, 
/*113260*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113263*/            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)
/*113273*/          /*Scope*/ 98, /*->113372*/
/*113274*/            OPC_CheckPatternPredicate, 83, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/*113276*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #2
/*113282*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*113285*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*113293*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*113296*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*113305*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #7
/*113311*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*113314*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 7, 8,  // Results = #9
/*113322*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*113325*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*113334*/            OPC_EmitInteger, MVT::i32, 14, 
/*113337*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113340*/            OPC_EmitNode1, TARGET_VAL(ARM::VADDfd), 0,
                          MVT::f64, 4/*#Ops*/, 6, 11, 12, 13,  // Results = #14
/*113350*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*113353*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 14, 15,  // Results = #16
/*113361*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*113364*/            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] })
/*113372*/          0, /*End of Scope*/
/*113373*/        /*SwitchType*/ 18, MVT::f16,// ->113393
/*113375*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*113377*/          OPC_EmitInteger, MVT::i32, 14, 
/*113380*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113383*/          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)
/*113393*/        0, // EndSwitchType
/*113394*/      /*Scope*/ 122, /*->113517*/
/*113395*/        OPC_MoveChild1,
/*113396*/        OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*113399*/        OPC_Scope, 70, /*->113471*/ // 2 children in Scope
/*113401*/          OPC_RecordChild0, // #1 = $Vn
/*113402*/          OPC_MoveChild1,
/*113403*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*113406*/          OPC_RecordChild0, // #2 = $Vm
/*113407*/          OPC_CheckChild0Type, MVT::v2f32,
/*113409*/          OPC_RecordChild1, // #3 = $lane
/*113410*/          OPC_MoveChild1,
/*113411*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113414*/          OPC_MoveParent,
/*113415*/          OPC_MoveParent,
/*113416*/          OPC_CheckPredicate, 59, // Predicate_fmul_su
/*113418*/          OPC_MoveParent,
/*113419*/          OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*113421*/          OPC_SwitchType /*2 cases */, 22, MVT::v2f32,// ->113446
/*113424*/            OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*113426*/            OPC_EmitConvertToTarget, 3,
/*113428*/            OPC_EmitInteger, MVT::i32, 14, 
/*113431*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113434*/            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, (ARMvduplane:{ *:[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)
/*113446*/          /*SwitchType*/ 22, MVT::v4f32,// ->113470
/*113448*/            OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*113450*/            OPC_EmitConvertToTarget, 3,
/*113452*/            OPC_EmitInteger, MVT::i32, 14, 
/*113455*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113458*/            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, (ARMvduplane:{ *:[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)
/*113470*/          0, // EndSwitchType
/*113471*/        /*Scope*/ 44, /*->113516*/
/*113472*/          OPC_MoveChild0,
/*113473*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*113476*/          OPC_RecordChild0, // #1 = $Vm
/*113477*/          OPC_CheckChild0Type, MVT::v2f32,
/*113479*/          OPC_RecordChild1, // #2 = $lane
/*113480*/          OPC_MoveChild1,
/*113481*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113484*/          OPC_MoveParent,
/*113485*/          OPC_MoveParent,
/*113486*/          OPC_RecordChild1, // #3 = $Vn
/*113487*/          OPC_CheckPredicate, 59, // Predicate_fmul_su
/*113489*/          OPC_MoveParent,
/*113490*/          OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*113492*/          OPC_CheckType, MVT::v2f32,
/*113494*/          OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*113496*/          OPC_EmitConvertToTarget, 2,
/*113498*/          OPC_EmitInteger, MVT::i32, 14, 
/*113501*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113504*/          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] } (ARMvduplane:{ *:[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)
/*113516*/        0, /*End of Scope*/
/*113517*/      0, /*End of Scope*/
/*113518*/    /*Scope*/ 98, /*->113617*/
/*113519*/      OPC_MoveChild0,
/*113520*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*113523*/      OPC_Scope, 45, /*->113570*/ // 2 children in Scope
/*113525*/        OPC_RecordChild0, // #0 = $Vn
/*113526*/        OPC_MoveChild1,
/*113527*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*113530*/        OPC_RecordChild0, // #1 = $Vm
/*113531*/        OPC_CheckChild0Type, MVT::v2f32,
/*113533*/        OPC_RecordChild1, // #2 = $lane
/*113534*/        OPC_MoveChild1,
/*113535*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113538*/        OPC_MoveParent,
/*113539*/        OPC_MoveParent,
/*113540*/        OPC_CheckPredicate, 59, // Predicate_fmul_su
/*113542*/        OPC_MoveParent,
/*113543*/        OPC_RecordChild1, // #3 = $src1
/*113544*/        OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*113546*/        OPC_CheckType, MVT::v2f32,
/*113548*/        OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*113550*/        OPC_EmitConvertToTarget, 2,
/*113552*/        OPC_EmitInteger, MVT::i32, 14, 
/*113555*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113558*/        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, (ARMvduplane:{ *:[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)
/*113570*/      /*Scope*/ 45, /*->113616*/
/*113571*/        OPC_MoveChild0,
/*113572*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*113575*/        OPC_RecordChild0, // #0 = $Vm
/*113576*/        OPC_CheckChild0Type, MVT::v2f32,
/*113578*/        OPC_RecordChild1, // #1 = $lane
/*113579*/        OPC_MoveChild1,
/*113580*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113583*/        OPC_MoveParent,
/*113584*/        OPC_MoveParent,
/*113585*/        OPC_RecordChild1, // #2 = $Vn
/*113586*/        OPC_CheckPredicate, 59, // Predicate_fmul_su
/*113588*/        OPC_MoveParent,
/*113589*/        OPC_RecordChild1, // #3 = $src1
/*113590*/        OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*113592*/        OPC_CheckType, MVT::v2f32,
/*113594*/        OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*113596*/        OPC_EmitConvertToTarget, 1,
/*113598*/        OPC_EmitInteger, MVT::i32, 14, 
/*113601*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113604*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfd), 0,
                      MVT::v2f32, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (fadd:{ *:[v2f32] } (fmul:{ *:[v2f32] } (ARMvduplane:{ *:[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)
/*113616*/      0, /*End of Scope*/
/*113617*/    /*Scope*/ 49, /*->113667*/
/*113618*/      OPC_RecordChild0, // #0 = $src1
/*113619*/      OPC_MoveChild1,
/*113620*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*113623*/      OPC_MoveChild0,
/*113624*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*113627*/      OPC_RecordChild0, // #1 = $Vm
/*113628*/      OPC_CheckChild0Type, MVT::v2f32,
/*113630*/      OPC_RecordChild1, // #2 = $lane
/*113631*/      OPC_MoveChild1,
/*113632*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113635*/      OPC_MoveParent,
/*113636*/      OPC_MoveParent,
/*113637*/      OPC_RecordChild1, // #3 = $Vn
/*113638*/      OPC_CheckPredicate, 59, // Predicate_fmul_su
/*113640*/      OPC_MoveParent,
/*113641*/      OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*113643*/      OPC_CheckType, MVT::v4f32,
/*113645*/      OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*113647*/      OPC_EmitConvertToTarget, 2,
/*113649*/      OPC_EmitInteger, MVT::i32, 14, 
/*113652*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113655*/      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] } (ARMvduplane:{ *:[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)
/*113667*/    /*Scope*/ 98, /*->113766*/
/*113668*/      OPC_MoveChild0,
/*113669*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*113672*/      OPC_Scope, 45, /*->113719*/ // 2 children in Scope
/*113674*/        OPC_RecordChild0, // #0 = $Vn
/*113675*/        OPC_MoveChild1,
/*113676*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*113679*/        OPC_RecordChild0, // #1 = $Vm
/*113680*/        OPC_CheckChild0Type, MVT::v2f32,
/*113682*/        OPC_RecordChild1, // #2 = $lane
/*113683*/        OPC_MoveChild1,
/*113684*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113687*/        OPC_MoveParent,
/*113688*/        OPC_MoveParent,
/*113689*/        OPC_CheckPredicate, 59, // Predicate_fmul_su
/*113691*/        OPC_MoveParent,
/*113692*/        OPC_RecordChild1, // #3 = $src1
/*113693*/        OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*113695*/        OPC_CheckType, MVT::v4f32,
/*113697*/        OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*113699*/        OPC_EmitConvertToTarget, 2,
/*113701*/        OPC_EmitInteger, MVT::i32, 14, 
/*113704*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113707*/        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, (ARMvduplane:{ *:[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)
/*113719*/      /*Scope*/ 45, /*->113765*/
/*113720*/        OPC_MoveChild0,
/*113721*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*113724*/        OPC_RecordChild0, // #0 = $Vm
/*113725*/        OPC_CheckChild0Type, MVT::v2f32,
/*113727*/        OPC_RecordChild1, // #1 = $lane
/*113728*/        OPC_MoveChild1,
/*113729*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113732*/        OPC_MoveParent,
/*113733*/        OPC_MoveParent,
/*113734*/        OPC_RecordChild1, // #2 = $Vn
/*113735*/        OPC_CheckPredicate, 59, // Predicate_fmul_su
/*113737*/        OPC_MoveParent,
/*113738*/        OPC_RecordChild1, // #3 = $src1
/*113739*/        OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*113741*/        OPC_CheckType, MVT::v4f32,
/*113743*/        OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*113745*/        OPC_EmitConvertToTarget, 1,
/*113747*/        OPC_EmitInteger, MVT::i32, 14, 
/*113750*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113753*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfq), 0,
                      MVT::v4f32, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (fadd:{ *:[v4f32] } (fmul:{ *:[v4f32] } (ARMvduplane:{ *:[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)
/*113765*/      0, /*End of Scope*/
/*113766*/    /*Scope*/ 1|128,1/*129*/, /*->113897*/
/*113768*/      OPC_RecordChild0, // #0 = $src1
/*113769*/      OPC_MoveChild1,
/*113770*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*113773*/      OPC_Scope, 60, /*->113835*/ // 2 children in Scope
/*113775*/        OPC_RecordChild0, // #1 = $src2
/*113776*/        OPC_MoveChild1,
/*113777*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*113780*/        OPC_RecordChild0, // #2 = $src3
/*113781*/        OPC_CheckChild0Type, MVT::v4f32,
/*113783*/        OPC_RecordChild1, // #3 = $lane
/*113784*/        OPC_MoveChild1,
/*113785*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113788*/        OPC_MoveParent,
/*113789*/        OPC_MoveParent,
/*113790*/        OPC_CheckPredicate, 59, // Predicate_fmul_su
/*113792*/        OPC_MoveParent,
/*113793*/        OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*113795*/        OPC_CheckType, MVT::v4f32,
/*113797*/        OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*113799*/        OPC_EmitConvertToTarget, 3,
/*113801*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/*113804*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*113812*/        OPC_EmitConvertToTarget, 3,
/*113814*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/*113817*/        OPC_EmitInteger, MVT::i32, 14, 
/*113820*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113823*/        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, (ARMvduplane:{ *:[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))
/*113835*/      /*Scope*/ 60, /*->113896*/
/*113836*/        OPC_MoveChild0,
/*113837*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*113840*/        OPC_RecordChild0, // #1 = $src3
/*113841*/        OPC_CheckChild0Type, MVT::v4f32,
/*113843*/        OPC_RecordChild1, // #2 = $lane
/*113844*/        OPC_MoveChild1,
/*113845*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113848*/        OPC_MoveParent,
/*113849*/        OPC_MoveParent,
/*113850*/        OPC_RecordChild1, // #3 = $src2
/*113851*/        OPC_CheckPredicate, 59, // Predicate_fmul_su
/*113853*/        OPC_MoveParent,
/*113854*/        OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*113856*/        OPC_CheckType, MVT::v4f32,
/*113858*/        OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*113860*/        OPC_EmitConvertToTarget, 2,
/*113862*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/*113865*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f32, 2/*#Ops*/, 1, 5,  // Results = #6
/*113873*/        OPC_EmitConvertToTarget, 2,
/*113875*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/*113878*/        OPC_EmitInteger, MVT::i32, 14, 
/*113881*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113884*/        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] } (ARMvduplane:{ *:[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))
/*113896*/      0, /*End of Scope*/
/*113897*/    /*Scope*/ 2|128,1/*130*/, /*->114029*/
/*113899*/      OPC_MoveChild0,
/*113900*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*113903*/      OPC_Scope, 61, /*->113966*/ // 2 children in Scope
/*113905*/        OPC_RecordChild0, // #0 = $src2
/*113906*/        OPC_MoveChild1,
/*113907*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*113910*/        OPC_RecordChild0, // #1 = $src3
/*113911*/        OPC_CheckChild0Type, MVT::v4f32,
/*113913*/        OPC_RecordChild1, // #2 = $lane
/*113914*/        OPC_MoveChild1,
/*113915*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113918*/        OPC_MoveParent,
/*113919*/        OPC_MoveParent,
/*113920*/        OPC_CheckPredicate, 59, // Predicate_fmul_su
/*113922*/        OPC_MoveParent,
/*113923*/        OPC_RecordChild1, // #3 = $src1
/*113924*/        OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*113926*/        OPC_CheckType, MVT::v4f32,
/*113928*/        OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*113930*/        OPC_EmitConvertToTarget, 2,
/*113932*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/*113935*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f32, 2/*#Ops*/, 1, 5,  // Results = #6
/*113943*/        OPC_EmitConvertToTarget, 2,
/*113945*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/*113948*/        OPC_EmitInteger, MVT::i32, 14, 
/*113951*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*113954*/        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, (ARMvduplane:{ *:[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))
/*113966*/      /*Scope*/ 61, /*->114028*/
/*113967*/        OPC_MoveChild0,
/*113968*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*113971*/        OPC_RecordChild0, // #0 = $src3
/*113972*/        OPC_CheckChild0Type, MVT::v4f32,
/*113974*/        OPC_RecordChild1, // #1 = $lane
/*113975*/        OPC_MoveChild1,
/*113976*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*113979*/        OPC_MoveParent,
/*113980*/        OPC_MoveParent,
/*113981*/        OPC_RecordChild1, // #2 = $src2
/*113982*/        OPC_CheckPredicate, 59, // Predicate_fmul_su
/*113984*/        OPC_MoveParent,
/*113985*/        OPC_RecordChild1, // #3 = $src1
/*113986*/        OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*113988*/        OPC_CheckType, MVT::v4f32,
/*113990*/        OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*113992*/        OPC_EmitConvertToTarget, 1,
/*113994*/        OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/*113997*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 5,  // Results = #6
/*114005*/        OPC_EmitConvertToTarget, 1,
/*114007*/        OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/*114010*/        OPC_EmitInteger, MVT::i32, 14, 
/*114013*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114016*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslfq), 0,
                      MVT::v4f32, 6/*#Ops*/, 3, 2, 6, 8, 9, 10, 
                  // Src: (fadd:{ *:[v4f32] } (fmul:{ *:[v4f32] } (ARMvduplane:{ *:[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))
/*114028*/      0, /*End of Scope*/
/*114029*/    /*Scope*/ 115, /*->114145*/
/*114030*/      OPC_RecordChild0, // #0 = $src1
/*114031*/      OPC_MoveChild1,
/*114032*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*114035*/      OPC_Scope, 66, /*->114103*/ // 2 children in Scope
/*114037*/        OPC_RecordChild0, // #1 = $Vn
/*114038*/        OPC_MoveChild1,
/*114039*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*114042*/        OPC_RecordChild0, // #2 = $Vm
/*114043*/        OPC_CheckChild0Type, MVT::v4f16,
/*114045*/        OPC_RecordChild1, // #3 = $lane
/*114046*/        OPC_MoveChild1,
/*114047*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*114050*/        OPC_MoveParent,
/*114051*/        OPC_MoveParent,
/*114052*/        OPC_MoveParent,
/*114053*/        OPC_SwitchType /*2 cases */, 22, MVT::v4f16,// ->114078
/*114056*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114058*/          OPC_EmitConvertToTarget, 3,
/*114060*/          OPC_EmitInteger, MVT::i32, 14, 
/*114063*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114066*/          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, (ARMvduplane:{ *:[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)
/*114078*/        /*SwitchType*/ 22, MVT::v8f16,// ->114102
/*114080*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114082*/          OPC_EmitConvertToTarget, 3,
/*114084*/          OPC_EmitInteger, MVT::i32, 14, 
/*114087*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114090*/          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, (ARMvduplane:{ *:[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)
/*114102*/        0, // EndSwitchType
/*114103*/      /*Scope*/ 40, /*->114144*/
/*114104*/        OPC_MoveChild0,
/*114105*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*114108*/        OPC_RecordChild0, // #1 = $Vm
/*114109*/        OPC_CheckChild0Type, MVT::v4f16,
/*114111*/        OPC_RecordChild1, // #2 = $lane
/*114112*/        OPC_MoveChild1,
/*114113*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*114116*/        OPC_MoveParent,
/*114117*/        OPC_MoveParent,
/*114118*/        OPC_RecordChild1, // #3 = $Vn
/*114119*/        OPC_MoveParent,
/*114120*/        OPC_CheckType, MVT::v4f16,
/*114122*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114124*/        OPC_EmitConvertToTarget, 2,
/*114126*/        OPC_EmitInteger, MVT::i32, 14, 
/*114129*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114132*/        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] } (ARMvduplane:{ *:[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)
/*114144*/      0, /*End of Scope*/
/*114145*/    /*Scope*/ 90, /*->114236*/
/*114146*/      OPC_MoveChild0,
/*114147*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*114150*/      OPC_Scope, 41, /*->114193*/ // 2 children in Scope
/*114152*/        OPC_RecordChild0, // #0 = $Vn
/*114153*/        OPC_MoveChild1,
/*114154*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*114157*/        OPC_RecordChild0, // #1 = $Vm
/*114158*/        OPC_CheckChild0Type, MVT::v4f16,
/*114160*/        OPC_RecordChild1, // #2 = $lane
/*114161*/        OPC_MoveChild1,
/*114162*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*114165*/        OPC_MoveParent,
/*114166*/        OPC_MoveParent,
/*114167*/        OPC_MoveParent,
/*114168*/        OPC_RecordChild1, // #3 = $src1
/*114169*/        OPC_CheckType, MVT::v4f16,
/*114171*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114173*/        OPC_EmitConvertToTarget, 2,
/*114175*/        OPC_EmitInteger, MVT::i32, 14, 
/*114178*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114181*/        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, (ARMvduplane:{ *:[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)
/*114193*/      /*Scope*/ 41, /*->114235*/
/*114194*/        OPC_MoveChild0,
/*114195*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*114198*/        OPC_RecordChild0, // #0 = $Vm
/*114199*/        OPC_CheckChild0Type, MVT::v4f16,
/*114201*/        OPC_RecordChild1, // #1 = $lane
/*114202*/        OPC_MoveChild1,
/*114203*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*114206*/        OPC_MoveParent,
/*114207*/        OPC_MoveParent,
/*114208*/        OPC_RecordChild1, // #2 = $Vn
/*114209*/        OPC_MoveParent,
/*114210*/        OPC_RecordChild1, // #3 = $src1
/*114211*/        OPC_CheckType, MVT::v4f16,
/*114213*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114215*/        OPC_EmitConvertToTarget, 1,
/*114217*/        OPC_EmitInteger, MVT::i32, 14, 
/*114220*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114223*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslhd), 0,
                      MVT::v4f16, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (fadd:{ *:[v4f16] } (fmul:{ *:[v4f16] } (ARMvduplane:{ *:[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)
/*114235*/      0, /*End of Scope*/
/*114236*/    /*Scope*/ 45, /*->114282*/
/*114237*/      OPC_RecordChild0, // #0 = $src1
/*114238*/      OPC_MoveChild1,
/*114239*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*114242*/      OPC_MoveChild0,
/*114243*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*114246*/      OPC_RecordChild0, // #1 = $Vm
/*114247*/      OPC_CheckChild0Type, MVT::v4f16,
/*114249*/      OPC_RecordChild1, // #2 = $lane
/*114250*/      OPC_MoveChild1,
/*114251*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*114254*/      OPC_MoveParent,
/*114255*/      OPC_MoveParent,
/*114256*/      OPC_RecordChild1, // #3 = $Vn
/*114257*/      OPC_MoveParent,
/*114258*/      OPC_CheckType, MVT::v8f16,
/*114260*/      OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114262*/      OPC_EmitConvertToTarget, 2,
/*114264*/      OPC_EmitInteger, MVT::i32, 14, 
/*114267*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114270*/      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] } (ARMvduplane:{ *:[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)
/*114282*/    /*Scope*/ 90, /*->114373*/
/*114283*/      OPC_MoveChild0,
/*114284*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*114287*/      OPC_Scope, 41, /*->114330*/ // 2 children in Scope
/*114289*/        OPC_RecordChild0, // #0 = $Vn
/*114290*/        OPC_MoveChild1,
/*114291*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*114294*/        OPC_RecordChild0, // #1 = $Vm
/*114295*/        OPC_CheckChild0Type, MVT::v4f16,
/*114297*/        OPC_RecordChild1, // #2 = $lane
/*114298*/        OPC_MoveChild1,
/*114299*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*114302*/        OPC_MoveParent,
/*114303*/        OPC_MoveParent,
/*114304*/        OPC_MoveParent,
/*114305*/        OPC_RecordChild1, // #3 = $src1
/*114306*/        OPC_CheckType, MVT::v8f16,
/*114308*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114310*/        OPC_EmitConvertToTarget, 2,
/*114312*/        OPC_EmitInteger, MVT::i32, 14, 
/*114315*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114318*/        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, (ARMvduplane:{ *:[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)
/*114330*/      /*Scope*/ 41, /*->114372*/
/*114331*/        OPC_MoveChild0,
/*114332*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*114335*/        OPC_RecordChild0, // #0 = $Vm
/*114336*/        OPC_CheckChild0Type, MVT::v4f16,
/*114338*/        OPC_RecordChild1, // #1 = $lane
/*114339*/        OPC_MoveChild1,
/*114340*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*114343*/        OPC_MoveParent,
/*114344*/        OPC_MoveParent,
/*114345*/        OPC_RecordChild1, // #2 = $Vn
/*114346*/        OPC_MoveParent,
/*114347*/        OPC_RecordChild1, // #3 = $src1
/*114348*/        OPC_CheckType, MVT::v8f16,
/*114350*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114352*/        OPC_EmitConvertToTarget, 1,
/*114354*/        OPC_EmitInteger, MVT::i32, 14, 
/*114357*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114360*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMLAslhq), 0,
                      MVT::v8f16, 6/*#Ops*/, 3, 2, 0, 4, 5, 6, 
                  // Src: (fadd:{ *:[v8f16] } (fmul:{ *:[v8f16] } (ARMvduplane:{ *:[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)
/*114372*/      0, /*End of Scope*/
/*114373*/    /*Scope*/ 16|128,1/*144*/, /*->114519*/
/*114375*/      OPC_RecordChild0, // #0 = $src1
/*114376*/      OPC_MoveChild1,
/*114377*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*114380*/      OPC_RecordChild0, // #1 = $Vn
/*114381*/      OPC_RecordChild1, // #2 = $Vm
/*114382*/      OPC_CheckPredicate, 59, // Predicate_fmul_su
/*114384*/      OPC_MoveParent,
/*114385*/      OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*114387*/      OPC_SwitchType /*4 cases */, 42, MVT::v2f32,// ->114432
/*114390*/        OPC_Scope, 19, /*->114411*/ // 2 children in Scope
/*114392*/          OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114394*/          OPC_EmitInteger, MVT::i32, 14, 
/*114397*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114400*/          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)
/*114411*/        /*Scope*/ 19, /*->114431*/
/*114412*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*114414*/          OPC_EmitInteger, MVT::i32, 14, 
/*114417*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114420*/          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)
/*114431*/        0, /*End of Scope*/
/*114432*/      /*SwitchType*/ 42, MVT::v4f32,// ->114476
/*114434*/        OPC_Scope, 19, /*->114455*/ // 2 children in Scope
/*114436*/          OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114438*/          OPC_EmitInteger, MVT::i32, 14, 
/*114441*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114444*/          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)
/*114455*/        /*Scope*/ 19, /*->114475*/
/*114456*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*114458*/          OPC_EmitInteger, MVT::i32, 14, 
/*114461*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114464*/          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)
/*114475*/        0, /*End of Scope*/
/*114476*/      /*SwitchType*/ 19, MVT::v4f16,// ->114497
/*114478*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114480*/        OPC_EmitInteger, MVT::i32, 14, 
/*114483*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114486*/        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)
/*114497*/      /*SwitchType*/ 19, MVT::v8f16,// ->114518
/*114499*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114501*/        OPC_EmitInteger, MVT::i32, 14, 
/*114504*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114507*/        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)
/*114518*/      0, // EndSwitchType
/*114519*/    /*Scope*/ 16|128,1/*144*/, /*->114665*/
/*114521*/      OPC_MoveChild0,
/*114522*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*114525*/      OPC_RecordChild0, // #0 = $Vn
/*114526*/      OPC_RecordChild1, // #1 = $Vm
/*114527*/      OPC_CheckPredicate, 59, // Predicate_fmul_su
/*114529*/      OPC_MoveParent,
/*114530*/      OPC_RecordChild1, // #2 = $src1
/*114531*/      OPC_CheckPredicate, 96, // Predicate_fadd_mlx
/*114533*/      OPC_SwitchType /*4 cases */, 42, MVT::v2f32,// ->114578
/*114536*/        OPC_Scope, 19, /*->114557*/ // 2 children in Scope
/*114538*/          OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114540*/          OPC_EmitInteger, MVT::i32, 14, 
/*114543*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114546*/          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)
/*114557*/        /*Scope*/ 19, /*->114577*/
/*114558*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*114560*/          OPC_EmitInteger, MVT::i32, 14, 
/*114563*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114566*/          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)
/*114577*/        0, /*End of Scope*/
/*114578*/      /*SwitchType*/ 42, MVT::v4f32,// ->114622
/*114580*/        OPC_Scope, 19, /*->114601*/ // 2 children in Scope
/*114582*/          OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114584*/          OPC_EmitInteger, MVT::i32, 14, 
/*114587*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114590*/          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)
/*114601*/        /*Scope*/ 19, /*->114621*/
/*114602*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*114604*/          OPC_EmitInteger, MVT::i32, 14, 
/*114607*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114610*/          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)
/*114621*/        0, /*End of Scope*/
/*114622*/      /*SwitchType*/ 19, MVT::v4f16,// ->114643
/*114624*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114626*/        OPC_EmitInteger, MVT::i32, 14, 
/*114629*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114632*/        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)
/*114643*/      /*SwitchType*/ 19, MVT::v8f16,// ->114664
/*114645*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114647*/        OPC_EmitInteger, MVT::i32, 14, 
/*114650*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114653*/        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)
/*114664*/      0, // EndSwitchType
/*114665*/    /*Scope*/ 52, /*->114718*/
/*114666*/      OPC_RecordChild0, // #0 = $src1
/*114667*/      OPC_MoveChild1,
/*114668*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*114671*/      OPC_RecordChild0, // #1 = $Vn
/*114672*/      OPC_RecordChild1, // #2 = $Vm
/*114673*/      OPC_MoveParent,
/*114674*/      OPC_SwitchType /*2 cases */, 19, MVT::v4f16,// ->114696
/*114677*/        OPC_CheckPatternPredicate, 114, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*114679*/        OPC_EmitInteger, MVT::i32, 14, 
/*114682*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114685*/        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)
/*114696*/      /*SwitchType*/ 19, MVT::v8f16,// ->114717
/*114698*/        OPC_CheckPatternPredicate, 114, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*114700*/        OPC_EmitInteger, MVT::i32, 14, 
/*114703*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114706*/        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)
/*114717*/      0, // EndSwitchType
/*114718*/    /*Scope*/ 52, /*->114771*/
/*114719*/      OPC_MoveChild0,
/*114720*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*114723*/      OPC_RecordChild0, // #0 = $Vn
/*114724*/      OPC_RecordChild1, // #1 = $Vm
/*114725*/      OPC_MoveParent,
/*114726*/      OPC_RecordChild1, // #2 = $src1
/*114727*/      OPC_SwitchType /*2 cases */, 19, MVT::v4f16,// ->114749
/*114730*/        OPC_CheckPatternPredicate, 114, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*114732*/        OPC_EmitInteger, MVT::i32, 14, 
/*114735*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114738*/        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)
/*114749*/      /*SwitchType*/ 19, MVT::v8f16,// ->114770
/*114751*/        OPC_CheckPatternPredicate, 114, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*114753*/        OPC_EmitInteger, MVT::i32, 14, 
/*114756*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114759*/        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)
/*114770*/      0, // EndSwitchType
/*114771*/    /*Scope*/ 14|128,1/*142*/, /*->114915*/
/*114773*/      OPC_RecordChild0, // #0 = $Vn
/*114774*/      OPC_RecordChild1, // #1 = $Vm
/*114775*/      OPC_SwitchType /*4 cases */, 18, MVT::v2f32,// ->114796
/*114778*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*114780*/        OPC_EmitInteger, MVT::i32, 14, 
/*114783*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114786*/        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)
/*114796*/      /*SwitchType*/ 47, MVT::v4f32,// ->114845
/*114798*/        OPC_Scope, 18, /*->114818*/ // 2 children in Scope
/*114800*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*114802*/          OPC_EmitInteger, MVT::i32, 14, 
/*114805*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114808*/          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)
/*114818*/        /*Scope*/ 25, /*->114844*/
/*114819*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*114821*/          OPC_EmitInteger, MVT::i32, 0, 
/*114824*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114827*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*114833*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDf32), 0,
                        MVT::v4f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VADDf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
/*114844*/        0, /*End of Scope*/
/*114845*/      /*SwitchType*/ 18, MVT::v4f16,// ->114865
/*114847*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*114849*/        OPC_EmitInteger, MVT::i32, 14, 
/*114852*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114855*/        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)
/*114865*/      /*SwitchType*/ 47, MVT::v8f16,// ->114914
/*114867*/        OPC_Scope, 18, /*->114887*/ // 2 children in Scope
/*114869*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*114871*/          OPC_EmitInteger, MVT::i32, 14, 
/*114874*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114877*/          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)
/*114887*/        /*Scope*/ 25, /*->114913*/
/*114888*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*114890*/          OPC_EmitInteger, MVT::i32, 0, 
/*114893*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114896*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*114902*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VADDf16), 0,
                        MVT::v8f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fadd:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VADDf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
/*114913*/        0, /*End of Scope*/
/*114914*/      0, // EndSwitchType
/*114915*/    0, /*End of Scope*/
/*114916*/  /*SwitchOpcode*/ 1|128,14/*1793*/, TARGET_VAL(ISD::FSUB),// ->116713
/*114920*/    OPC_Scope, 10|128,2/*266*/, /*->115189*/ // 6 children in Scope
/*114923*/      OPC_MoveChild0,
/*114924*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/*114927*/      OPC_Scope, 101, /*->115030*/ // 3 children in Scope
/*114929*/        OPC_MoveChild0,
/*114930*/        OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*114933*/        OPC_RecordChild0, // #0 = $Dn
/*114934*/        OPC_RecordChild1, // #1 = $Dm
/*114935*/        OPC_CheckPredicate, 59, // Predicate_fmul_su
/*114937*/        OPC_MoveParent,
/*114938*/        OPC_MoveParent,
/*114939*/        OPC_RecordChild1, // #2 = $Ddin
/*114940*/        OPC_CheckPredicate, 96, // Predicate_fsub_mlx
/*114942*/        OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->114964
/*114945*/          OPC_CheckPatternPredicate, 101, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114947*/          OPC_EmitInteger, MVT::i32, 14, 
/*114950*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114953*/          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)
/*114964*/        /*SwitchType*/ 19, MVT::f32,// ->114985
/*114966*/          OPC_CheckPatternPredicate, 103, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114968*/          OPC_EmitInteger, MVT::i32, 14, 
/*114971*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114974*/          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)
/*114985*/        /*SwitchType*/ 42, MVT::f16,// ->115029
/*114987*/          OPC_Scope, 19, /*->115008*/ // 2 children in Scope
/*114989*/            OPC_CheckPatternPredicate, 105, // (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*114991*/            OPC_EmitInteger, MVT::i32, 14, 
/*114994*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*114997*/            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)
/*115008*/          /*Scope*/ 19, /*->115028*/
/*115009*/            OPC_CheckPatternPredicate, 107, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*115011*/            OPC_EmitInteger, MVT::i32, 14, 
/*115014*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115017*/            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)
/*115028*/          0, /*End of Scope*/
/*115029*/        0, // EndSwitchType
/*115030*/      /*Scope*/ 78, /*->115109*/
/*115031*/        OPC_RecordChild0, // #0 = $dstin
/*115032*/        OPC_MoveParent,
/*115033*/        OPC_MoveChild1,
/*115034*/        OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*115037*/        OPC_RecordChild0, // #1 = $a
/*115038*/        OPC_RecordChild1, // #2 = $b
/*115039*/        OPC_CheckPredicate, 59, // Predicate_fmul_su
/*115041*/        OPC_MoveParent,
/*115042*/        OPC_CheckPredicate, 96, // Predicate_fsub_mlx
/*115044*/        OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->115066
/*115047*/          OPC_CheckPatternPredicate, 101, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*115049*/          OPC_EmitInteger, MVT::i32, 14, 
/*115052*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115055*/          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)
/*115066*/        /*SwitchType*/ 19, MVT::f32,// ->115087
/*115068*/          OPC_CheckPatternPredicate, 103, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*115070*/          OPC_EmitInteger, MVT::i32, 14, 
/*115073*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115076*/          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)
/*115087*/        /*SwitchType*/ 19, MVT::f16,// ->115108
/*115089*/          OPC_CheckPatternPredicate, 107, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*115091*/          OPC_EmitInteger, MVT::i32, 14, 
/*115094*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115097*/          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)
/*115108*/        0, // EndSwitchType
/*115109*/      /*Scope*/ 78, /*->115188*/
/*115110*/        OPC_MoveChild0,
/*115111*/        OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*115114*/        OPC_RecordChild0, // #0 = $Dn
/*115115*/        OPC_RecordChild1, // #1 = $Dm
/*115116*/        OPC_CheckPredicate, 59, // Predicate_fmul_su
/*115118*/        OPC_MoveParent,
/*115119*/        OPC_MoveParent,
/*115120*/        OPC_RecordChild1, // #2 = $Ddin
/*115121*/        OPC_CheckPredicate, 96, // Predicate_fsub_mlx
/*115123*/        OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->115145
/*115126*/          OPC_CheckPatternPredicate, 102, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*115128*/          OPC_EmitInteger, MVT::i32, 14, 
/*115131*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115134*/          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)
/*115145*/        /*SwitchType*/ 19, MVT::f32,// ->115166
/*115147*/          OPC_CheckPatternPredicate, 104, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*115149*/          OPC_EmitInteger, MVT::i32, 14, 
/*115152*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115155*/          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)
/*115166*/        /*SwitchType*/ 19, MVT::f16,// ->115187
/*115168*/          OPC_CheckPatternPredicate, 106, // (Subtarget->hasFullFP16()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*115170*/          OPC_EmitInteger, MVT::i32, 14, 
/*115173*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115176*/          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)
/*115187*/        0, // EndSwitchType
/*115188*/      0, /*End of Scope*/
/*115189*/    /*Scope*/ 77, /*->115267*/
/*115190*/      OPC_RecordChild0, // #0 = $dstin
/*115191*/      OPC_MoveChild1,
/*115192*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*115195*/      OPC_RecordChild0, // #1 = $a
/*115196*/      OPC_RecordChild1, // #2 = $b
/*115197*/      OPC_CheckPredicate, 59, // Predicate_fmul_su
/*115199*/      OPC_MoveParent,
/*115200*/      OPC_CheckPredicate, 96, // Predicate_fsub_mlx
/*115202*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->115224
/*115205*/        OPC_CheckPatternPredicate, 101, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*115207*/        OPC_EmitInteger, MVT::i32, 14, 
/*115210*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115213*/        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)
/*115224*/      /*SwitchType*/ 19, MVT::f32,// ->115245
/*115226*/        OPC_CheckPatternPredicate, 103, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*115228*/        OPC_EmitInteger, MVT::i32, 14, 
/*115231*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115234*/        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)
/*115245*/      /*SwitchType*/ 19, MVT::f16,// ->115266
/*115247*/        OPC_CheckPatternPredicate, 107, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*115249*/        OPC_EmitInteger, MVT::i32, 14, 
/*115252*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115255*/        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)
/*115266*/      0, // EndSwitchType
/*115267*/    /*Scope*/ 100, /*->115368*/
/*115268*/      OPC_MoveChild0,
/*115269*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*115272*/      OPC_RecordChild0, // #0 = $Dn
/*115273*/      OPC_RecordChild1, // #1 = $Dm
/*115274*/      OPC_CheckPredicate, 59, // Predicate_fmul_su
/*115276*/      OPC_MoveParent,
/*115277*/      OPC_RecordChild1, // #2 = $Ddin
/*115278*/      OPC_CheckPredicate, 96, // Predicate_fsub_mlx
/*115280*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->115302
/*115283*/        OPC_CheckPatternPredicate, 101, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*115285*/        OPC_EmitInteger, MVT::i32, 14, 
/*115288*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115291*/        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)
/*115302*/      /*SwitchType*/ 19, MVT::f32,// ->115323
/*115304*/        OPC_CheckPatternPredicate, 103, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*115306*/        OPC_EmitInteger, MVT::i32, 14, 
/*115309*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115312*/        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)
/*115323*/      /*SwitchType*/ 42, MVT::f16,// ->115367
/*115325*/        OPC_Scope, 19, /*->115346*/ // 2 children in Scope
/*115327*/          OPC_CheckPatternPredicate, 105, // (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*115329*/          OPC_EmitInteger, MVT::i32, 14, 
/*115332*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115335*/          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)
/*115346*/        /*Scope*/ 19, /*->115366*/
/*115347*/          OPC_CheckPatternPredicate, 107, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*115349*/          OPC_EmitInteger, MVT::i32, 14, 
/*115352*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115355*/          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)
/*115366*/        0, /*End of Scope*/
/*115367*/      0, // EndSwitchType
/*115368*/    /*Scope*/ 77, /*->115446*/
/*115369*/      OPC_RecordChild0, // #0 = $dstin
/*115370*/      OPC_MoveChild1,
/*115371*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*115374*/      OPC_RecordChild0, // #1 = $a
/*115375*/      OPC_RecordChild1, // #2 = $b
/*115376*/      OPC_CheckPredicate, 59, // Predicate_fmul_su
/*115378*/      OPC_MoveParent,
/*115379*/      OPC_CheckPredicate, 96, // Predicate_fsub_mlx
/*115381*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->115403
/*115384*/        OPC_CheckPatternPredicate, 102, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*115386*/        OPC_EmitInteger, MVT::i32, 14, 
/*115389*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115392*/        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)
/*115403*/      /*SwitchType*/ 19, MVT::f32,// ->115424
/*115405*/        OPC_CheckPatternPredicate, 104, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*115407*/        OPC_EmitInteger, MVT::i32, 14, 
/*115410*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115413*/        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)
/*115424*/      /*SwitchType*/ 19, MVT::f16,// ->115445
/*115426*/        OPC_CheckPatternPredicate, 108, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*115428*/        OPC_EmitInteger, MVT::i32, 14, 
/*115431*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115434*/        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)
/*115445*/      0, // EndSwitchType
/*115446*/    /*Scope*/ 77, /*->115524*/
/*115447*/      OPC_MoveChild0,
/*115448*/      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*115451*/      OPC_RecordChild0, // #0 = $Dn
/*115452*/      OPC_RecordChild1, // #1 = $Dm
/*115453*/      OPC_CheckPredicate, 59, // Predicate_fmul_su
/*115455*/      OPC_MoveParent,
/*115456*/      OPC_RecordChild1, // #2 = $Ddin
/*115457*/      OPC_CheckPredicate, 96, // Predicate_fsub_mlx
/*115459*/      OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->115481
/*115462*/        OPC_CheckPatternPredicate, 102, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*115464*/        OPC_EmitInteger, MVT::i32, 14, 
/*115467*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115470*/        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)
/*115481*/      /*SwitchType*/ 19, MVT::f32,// ->115502
/*115483*/        OPC_CheckPatternPredicate, 104, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*115485*/        OPC_EmitInteger, MVT::i32, 14, 
/*115488*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115491*/        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)
/*115502*/      /*SwitchType*/ 19, MVT::f16,// ->115523
/*115504*/        OPC_CheckPatternPredicate, 106, // (Subtarget->hasFullFP16()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*115506*/        OPC_EmitInteger, MVT::i32, 14, 
/*115509*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115512*/        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)
/*115523*/      0, // EndSwitchType
/*115524*/    /*Scope*/ 34|128,9/*1186*/, /*->116712*/
/*115526*/      OPC_RecordChild0, // #0 = $acc
/*115527*/      OPC_Scope, 15|128,2/*271*/, /*->115801*/ // 4 children in Scope
/*115530*/        OPC_MoveChild1,
/*115531*/        OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*115534*/        OPC_RecordChild0, // #1 = $a
/*115535*/        OPC_RecordChild1, // #2 = $b
/*115536*/        OPC_MoveParent,
/*115537*/        OPC_CheckType, MVT::f32,
/*115539*/        OPC_Scope, 0|128,1/*128*/, /*->115670*/ // 2 children in Scope
/*115542*/          OPC_CheckPatternPredicate, 109, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize())) && (Subtarget->useNEONForSinglePrecisionFP())
/*115544*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #3
/*115550*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*115553*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*115561*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*115564*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/*115573*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #8
/*115579*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*115582*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/*115590*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*115593*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 10, 1, 11,  // Results = #12
/*115602*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #13
/*115608*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*115611*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 13, 14,  // Results = #15
/*115619*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*115622*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 15, 2, 16,  // Results = #17
/*115631*/          OPC_EmitInteger, MVT::i32, 14, 
/*115634*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115637*/          OPC_EmitNode1, TARGET_VAL(ARM::VMLSfd), 0,
                        MVT::f64, 5/*#Ops*/, 7, 12, 17, 18, 19,  // Results = #20
/*115648*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*115651*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 20, 21,  // Results = #22
/*115659*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*115662*/          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] })
/*115670*/        /*Scope*/ 0|128,1/*128*/, /*->115800*/
/*115672*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx()) && (Subtarget->useNEONForSinglePrecisionFP())
/*115674*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #3
/*115680*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*115683*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*115691*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*115694*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 5, 0, 6,  // Results = #7
/*115703*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #8
/*115709*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*115712*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/*115720*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*115723*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 10, 1, 11,  // Results = #12
/*115732*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #13
/*115738*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*115741*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 13, 14,  // Results = #15
/*115749*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*115752*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 15, 2, 16,  // Results = #17
/*115761*/          OPC_EmitInteger, MVT::i32, 14, 
/*115764*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115767*/          OPC_EmitNode1, TARGET_VAL(ARM::VFMSfd), 0,
                        MVT::f64, 5/*#Ops*/, 7, 12, 17, 18, 19,  // Results = #20
/*115778*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*115781*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 20, 21,  // Results = #22
/*115789*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*115792*/          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] })
/*115800*/        0, /*End of Scope*/
/*115801*/      /*Scope*/ 37|128,1/*165*/, /*->115968*/
/*115803*/        OPC_RecordChild1, // #1 = $Dm
/*115804*/        OPC_SwitchType /*3 cases */, 18, MVT::f64,// ->115825
/*115807*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*115809*/          OPC_EmitInteger, MVT::i32, 14, 
/*115812*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115815*/          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)
/*115825*/        /*SwitchType*/ 120, MVT::f32,// ->115947
/*115827*/          OPC_Scope, 18, /*->115847*/ // 2 children in Scope
/*115829*/            OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*115831*/            OPC_EmitInteger, MVT::i32, 14, 
/*115834*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115837*/            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)
/*115847*/          /*Scope*/ 98, /*->115946*/
/*115848*/            OPC_CheckPatternPredicate, 83, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/*115850*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #2
/*115856*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*115859*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*115867*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*115870*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*115879*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #7
/*115885*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*115888*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 7, 8,  // Results = #9
/*115896*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*115899*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*115908*/            OPC_EmitInteger, MVT::i32, 14, 
/*115911*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115914*/            OPC_EmitNode1, TARGET_VAL(ARM::VSUBfd), 0,
                          MVT::f64, 4/*#Ops*/, 6, 11, 12, 13,  // Results = #14
/*115924*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*115927*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 14, 15,  // Results = #16
/*115935*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*115938*/            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] })
/*115946*/          0, /*End of Scope*/
/*115947*/        /*SwitchType*/ 18, MVT::f16,// ->115967
/*115949*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*115951*/          OPC_EmitInteger, MVT::i32, 14, 
/*115954*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*115957*/          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)
/*115967*/        0, // EndSwitchType
/*115968*/      /*Scope*/ 86|128,4/*598*/, /*->116568*/
/*115970*/        OPC_MoveChild1,
/*115971*/        OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
/*115974*/        OPC_Scope, 70, /*->116046*/ // 7 children in Scope
/*115976*/          OPC_RecordChild0, // #1 = $Vn
/*115977*/          OPC_MoveChild1,
/*115978*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*115981*/          OPC_RecordChild0, // #2 = $Vm
/*115982*/          OPC_CheckChild0Type, MVT::v2f32,
/*115984*/          OPC_RecordChild1, // #3 = $lane
/*115985*/          OPC_MoveChild1,
/*115986*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*115989*/          OPC_MoveParent,
/*115990*/          OPC_MoveParent,
/*115991*/          OPC_CheckPredicate, 59, // Predicate_fmul_su
/*115993*/          OPC_MoveParent,
/*115994*/          OPC_CheckPredicate, 96, // Predicate_fsub_mlx
/*115996*/          OPC_SwitchType /*2 cases */, 22, MVT::v2f32,// ->116021
/*115999*/            OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*116001*/            OPC_EmitConvertToTarget, 3,
/*116003*/            OPC_EmitInteger, MVT::i32, 14, 
/*116006*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116009*/            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, (ARMvduplane:{ *:[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)
/*116021*/          /*SwitchType*/ 22, MVT::v4f32,// ->116045
/*116023*/            OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*116025*/            OPC_EmitConvertToTarget, 3,
/*116027*/            OPC_EmitInteger, MVT::i32, 14, 
/*116030*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116033*/            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, (ARMvduplane:{ *:[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)
/*116045*/          0, // EndSwitchType
/*116046*/        /*Scope*/ 70, /*->116117*/
/*116047*/          OPC_MoveChild0,
/*116048*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*116051*/          OPC_RecordChild0, // #1 = $Vm
/*116052*/          OPC_CheckChild0Type, MVT::v2f32,
/*116054*/          OPC_RecordChild1, // #2 = $lane
/*116055*/          OPC_MoveChild1,
/*116056*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*116059*/          OPC_MoveParent,
/*116060*/          OPC_MoveParent,
/*116061*/          OPC_RecordChild1, // #3 = $Vn
/*116062*/          OPC_CheckPredicate, 59, // Predicate_fmul_su
/*116064*/          OPC_MoveParent,
/*116065*/          OPC_CheckPredicate, 96, // Predicate_fsub_mlx
/*116067*/          OPC_SwitchType /*2 cases */, 22, MVT::v2f32,// ->116092
/*116070*/            OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*116072*/            OPC_EmitConvertToTarget, 2,
/*116074*/            OPC_EmitInteger, MVT::i32, 14, 
/*116077*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116080*/            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] } (ARMvduplane:{ *:[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)
/*116092*/          /*SwitchType*/ 22, MVT::v4f32,// ->116116
/*116094*/            OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*116096*/            OPC_EmitConvertToTarget, 2,
/*116098*/            OPC_EmitInteger, MVT::i32, 14, 
/*116101*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116104*/            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] } (ARMvduplane:{ *:[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)
/*116116*/          0, // EndSwitchType
/*116117*/        /*Scope*/ 60, /*->116178*/
/*116118*/          OPC_RecordChild0, // #1 = $src2
/*116119*/          OPC_MoveChild1,
/*116120*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*116123*/          OPC_RecordChild0, // #2 = $src3
/*116124*/          OPC_CheckChild0Type, MVT::v4f32,
/*116126*/          OPC_RecordChild1, // #3 = $lane
/*116127*/          OPC_MoveChild1,
/*116128*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*116131*/          OPC_MoveParent,
/*116132*/          OPC_MoveParent,
/*116133*/          OPC_CheckPredicate, 59, // Predicate_fmul_su
/*116135*/          OPC_MoveParent,
/*116136*/          OPC_CheckPredicate, 96, // Predicate_fsub_mlx
/*116138*/          OPC_CheckType, MVT::v4f32,
/*116140*/          OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*116142*/          OPC_EmitConvertToTarget, 3,
/*116144*/          OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/*116147*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*116155*/          OPC_EmitConvertToTarget, 3,
/*116157*/          OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/*116160*/          OPC_EmitInteger, MVT::i32, 14, 
/*116163*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116166*/          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, (ARMvduplane:{ *:[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))
/*116178*/        /*Scope*/ 60, /*->116239*/
/*116179*/          OPC_MoveChild0,
/*116180*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*116183*/          OPC_RecordChild0, // #1 = $src3
/*116184*/          OPC_CheckChild0Type, MVT::v4f32,
/*116186*/          OPC_RecordChild1, // #2 = $lane
/*116187*/          OPC_MoveChild1,
/*116188*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*116191*/          OPC_MoveParent,
/*116192*/          OPC_MoveParent,
/*116193*/          OPC_RecordChild1, // #3 = $src2
/*116194*/          OPC_CheckPredicate, 59, // Predicate_fmul_su
/*116196*/          OPC_MoveParent,
/*116197*/          OPC_CheckPredicate, 96, // Predicate_fsub_mlx
/*116199*/          OPC_CheckType, MVT::v4f32,
/*116201*/          OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*116203*/          OPC_EmitConvertToTarget, 2,
/*116205*/          OPC_EmitNodeXForm, 7, 4, // DSubReg_i32_reg
/*116208*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f32, 2/*#Ops*/, 1, 5,  // Results = #6
/*116216*/          OPC_EmitConvertToTarget, 2,
/*116218*/          OPC_EmitNodeXForm, 8, 7, // SubReg_i32_lane
/*116221*/          OPC_EmitInteger, MVT::i32, 14, 
/*116224*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116227*/          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] } (ARMvduplane:{ *:[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))
/*116239*/        /*Scope*/ 66, /*->116306*/
/*116240*/          OPC_RecordChild0, // #1 = $Vn
/*116241*/          OPC_MoveChild1,
/*116242*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*116245*/          OPC_RecordChild0, // #2 = $Vm
/*116246*/          OPC_CheckChild0Type, MVT::v4f16,
/*116248*/          OPC_RecordChild1, // #3 = $lane
/*116249*/          OPC_MoveChild1,
/*116250*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*116253*/          OPC_MoveParent,
/*116254*/          OPC_MoveParent,
/*116255*/          OPC_MoveParent,
/*116256*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f16,// ->116281
/*116259*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*116261*/            OPC_EmitConvertToTarget, 3,
/*116263*/            OPC_EmitInteger, MVT::i32, 14, 
/*116266*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116269*/            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, (ARMvduplane:{ *:[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)
/*116281*/          /*SwitchType*/ 22, MVT::v8f16,// ->116305
/*116283*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*116285*/            OPC_EmitConvertToTarget, 3,
/*116287*/            OPC_EmitInteger, MVT::i32, 14, 
/*116290*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116293*/            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, (ARMvduplane:{ *:[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)
/*116305*/          0, // EndSwitchType
/*116306*/        /*Scope*/ 66, /*->116373*/
/*116307*/          OPC_MoveChild0,
/*116308*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*116311*/          OPC_RecordChild0, // #1 = $Vm
/*116312*/          OPC_CheckChild0Type, MVT::v4f16,
/*116314*/          OPC_RecordChild1, // #2 = $lane
/*116315*/          OPC_MoveChild1,
/*116316*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*116319*/          OPC_MoveParent,
/*116320*/          OPC_MoveParent,
/*116321*/          OPC_RecordChild1, // #3 = $Vn
/*116322*/          OPC_MoveParent,
/*116323*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f16,// ->116348
/*116326*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*116328*/            OPC_EmitConvertToTarget, 2,
/*116330*/            OPC_EmitInteger, MVT::i32, 14, 
/*116333*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116336*/            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] } (ARMvduplane:{ *:[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)
/*116348*/          /*SwitchType*/ 22, MVT::v8f16,// ->116372
/*116350*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*116352*/            OPC_EmitConvertToTarget, 2,
/*116354*/            OPC_EmitInteger, MVT::i32, 14, 
/*116357*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116360*/            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] } (ARMvduplane:{ *:[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)
/*116372*/          0, // EndSwitchType
/*116373*/        /*Scope*/ 64|128,1/*192*/, /*->116567*/
/*116375*/          OPC_RecordChild0, // #1 = $Vn
/*116376*/          OPC_RecordChild1, // #2 = $Vm
/*116377*/          OPC_Scope, 95, /*->116474*/ // 2 children in Scope
/*116379*/            OPC_CheckPredicate, 59, // Predicate_fmul_su
/*116381*/            OPC_MoveParent,
/*116382*/            OPC_CheckPredicate, 96, // Predicate_fsub_mlx
/*116384*/            OPC_SwitchType /*2 cases */, 42, MVT::v2f32,// ->116429
/*116387*/              OPC_Scope, 19, /*->116408*/ // 2 children in Scope
/*116389*/                OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*116391*/                OPC_EmitInteger, MVT::i32, 14, 
/*116394*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116397*/                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)
/*116408*/              /*Scope*/ 19, /*->116428*/
/*116409*/                OPC_CheckPatternPredicate, 113, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*116411*/                OPC_EmitInteger, MVT::i32, 14, 
/*116414*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116417*/                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)
/*116428*/              0, /*End of Scope*/
/*116429*/            /*SwitchType*/ 42, MVT::v4f32,// ->116473
/*116431*/              OPC_Scope, 19, /*->116452*/ // 2 children in Scope
/*116433*/                OPC_CheckPatternPredicate, 111, // (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*116435*/                OPC_EmitInteger, MVT::i32, 14, 
/*116438*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116441*/                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)
/*116452*/              /*Scope*/ 19, /*->116472*/
/*116453*/                OPC_CheckPatternPredicate, 113, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*116455*/                OPC_EmitInteger, MVT::i32, 14, 
/*116458*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116461*/                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)
/*116472*/              0, /*End of Scope*/
/*116473*/            0, // EndSwitchType
/*116474*/          /*Scope*/ 91, /*->116566*/
/*116475*/            OPC_MoveParent,
/*116476*/            OPC_SwitchType /*2 cases */, 42, MVT::v4f16,// ->116521
/*116479*/              OPC_Scope, 19, /*->116500*/ // 2 children in Scope
/*116481*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*116483*/                OPC_EmitInteger, MVT::i32, 14, 
/*116486*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116489*/                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)
/*116500*/              /*Scope*/ 19, /*->116520*/
/*116501*/                OPC_CheckPatternPredicate, 114, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*116503*/                OPC_EmitInteger, MVT::i32, 14, 
/*116506*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116509*/                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)
/*116520*/              0, /*End of Scope*/
/*116521*/            /*SwitchType*/ 42, MVT::v8f16,// ->116565
/*116523*/              OPC_Scope, 19, /*->116544*/ // 2 children in Scope
/*116525*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()))
/*116527*/                OPC_EmitInteger, MVT::i32, 14, 
/*116530*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116533*/                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)
/*116544*/              /*Scope*/ 19, /*->116564*/
/*116545*/                OPC_CheckPatternPredicate, 114, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx())
/*116547*/                OPC_EmitInteger, MVT::i32, 14, 
/*116550*/                OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116553*/                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)
/*116564*/              0, /*End of Scope*/
/*116565*/            0, // EndSwitchType
/*116566*/          0, /*End of Scope*/
/*116567*/        0, /*End of Scope*/
/*116568*/      /*Scope*/ 13|128,1/*141*/, /*->116711*/
/*116570*/        OPC_RecordChild1, // #1 = $Vm
/*116571*/        OPC_SwitchType /*4 cases */, 18, MVT::v2f32,// ->116592
/*116574*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*116576*/          OPC_EmitInteger, MVT::i32, 14, 
/*116579*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116582*/          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)
/*116592*/        /*SwitchType*/ 47, MVT::v4f32,// ->116641
/*116594*/          OPC_Scope, 18, /*->116614*/ // 2 children in Scope
/*116596*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*116598*/            OPC_EmitInteger, MVT::i32, 14, 
/*116601*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116604*/            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)
/*116614*/          /*Scope*/ 25, /*->116640*/
/*116615*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*116617*/            OPC_EmitInteger, MVT::i32, 0, 
/*116620*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116623*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*116629*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSUBf32), 0,
                          MVT::v4f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (fsub:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn) - Complexity = 3
                      // Dst: (MVE_VSUBf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
/*116640*/          0, /*End of Scope*/
/*116641*/        /*SwitchType*/ 18, MVT::v4f16,// ->116661
/*116643*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*116645*/          OPC_EmitInteger, MVT::i32, 14, 
/*116648*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116651*/          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)
/*116661*/        /*SwitchType*/ 47, MVT::v8f16,// ->116710
/*116663*/          OPC_Scope, 18, /*->116683*/ // 2 children in Scope
/*116665*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*116667*/            OPC_EmitInteger, MVT::i32, 14, 
/*116670*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116673*/            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)
/*116683*/          /*Scope*/ 25, /*->116709*/
/*116684*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*116686*/            OPC_EmitInteger, MVT::i32, 0, 
/*116689*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116692*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*116698*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSUBf16), 0,
                          MVT::v8f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (fsub:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn) - Complexity = 3
                      // Dst: (MVE_VSUBf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
/*116709*/          0, /*End of Scope*/
/*116710*/        0, // EndSwitchType
/*116711*/      0, /*End of Scope*/
/*116712*/    0, /*End of Scope*/
/*116713*/  /*SwitchOpcode*/ 96|128,4/*608*/, TARGET_VAL(ISD::FMA),// ->117325
/*116717*/    OPC_Scope, 20|128,1/*148*/, /*->116868*/ // 4 children in Scope
/*116720*/      OPC_MoveChild0,
/*116721*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/*116724*/      OPC_RecordChild0, // #0 = $Dn
/*116725*/      OPC_MoveParent,
/*116726*/      OPC_RecordChild1, // #1 = $Dm
/*116727*/      OPC_Scope, 71, /*->116800*/ // 2 children in Scope
/*116729*/        OPC_MoveChild2,
/*116730*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/*116733*/        OPC_RecordChild0, // #2 = $Ddin
/*116734*/        OPC_MoveParent,
/*116735*/        OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->116757
/*116738*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base())
/*116740*/          OPC_EmitInteger, MVT::i32, 14, 
/*116743*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116746*/          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)
/*116757*/        /*SwitchType*/ 19, MVT::f32,// ->116778
/*116759*/          OPC_CheckPatternPredicate, 116, // (Subtarget->hasVFP4Base())
/*116761*/          OPC_EmitInteger, MVT::i32, 14, 
/*116764*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116767*/          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)
/*116778*/        /*SwitchType*/ 19, MVT::f16,// ->116799
/*116780*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*116782*/          OPC_EmitInteger, MVT::i32, 14, 
/*116785*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116788*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMAH), 0,
                        MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fma:{ *:[f16] } (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), HPR:{ *:[f16] }:$Sm, (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sdin)) - Complexity = 9
                    // Dst: (VFNMAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/*116799*/        0, // EndSwitchType
/*116800*/      /*Scope*/ 66, /*->116867*/
/*116801*/        OPC_RecordChild2, // #2 = $Ddin
/*116802*/        OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->116824
/*116805*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base())
/*116807*/          OPC_EmitInteger, MVT::i32, 14, 
/*116810*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116813*/          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)
/*116824*/        /*SwitchType*/ 19, MVT::f32,// ->116845
/*116826*/          OPC_CheckPatternPredicate, 116, // (Subtarget->hasVFP4Base())
/*116828*/          OPC_EmitInteger, MVT::i32, 14, 
/*116831*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116834*/          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)
/*116845*/        /*SwitchType*/ 19, MVT::f16,// ->116866
/*116847*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*116849*/          OPC_EmitInteger, MVT::i32, 14, 
/*116852*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116855*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSH), 0,
                        MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fma:{ *:[f16] } (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sdin) - Complexity = 6
                    // Dst: (VFMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/*116866*/        0, // EndSwitchType
/*116867*/      0, /*End of Scope*/
/*116868*/    /*Scope*/ 92|128,1/*220*/, /*->117090*/
/*116870*/      OPC_RecordChild0, // #0 = $Dn
/*116871*/      OPC_Scope, 72, /*->116945*/ // 2 children in Scope
/*116873*/        OPC_MoveChild1,
/*116874*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/*116877*/        OPC_RecordChild0, // #1 = $Dm
/*116878*/        OPC_MoveParent,
/*116879*/        OPC_RecordChild2, // #2 = $Ddin
/*116880*/        OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->116902
/*116883*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base())
/*116885*/          OPC_EmitInteger, MVT::i32, 14, 
/*116888*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116891*/          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)
/*116902*/        /*SwitchType*/ 19, MVT::f32,// ->116923
/*116904*/          OPC_CheckPatternPredicate, 116, // (Subtarget->hasVFP4Base())
/*116906*/          OPC_EmitInteger, MVT::i32, 14, 
/*116909*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116912*/          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)
/*116923*/        /*SwitchType*/ 19, MVT::f16,// ->116944
/*116925*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*116927*/          OPC_EmitInteger, MVT::i32, 14, 
/*116930*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116933*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMSH), 0,
                        MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sn, (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sm), HPR:{ *:[f16] }:$Sdin) - Complexity = 6
                    // Dst: (VFMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/*116944*/        0, // EndSwitchType
/*116945*/      /*Scope*/ 14|128,1/*142*/, /*->117089*/
/*116947*/        OPC_RecordChild1, // #1 = $Dm
/*116948*/        OPC_Scope, 71, /*->117021*/ // 2 children in Scope
/*116950*/          OPC_MoveChild2,
/*116951*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/*116954*/          OPC_RecordChild0, // #2 = $Ddin
/*116955*/          OPC_MoveParent,
/*116956*/          OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->116978
/*116959*/            OPC_CheckPatternPredicate, 115, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base())
/*116961*/            OPC_EmitInteger, MVT::i32, 14, 
/*116964*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116967*/            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)
/*116978*/          /*SwitchType*/ 19, MVT::f32,// ->116999
/*116980*/            OPC_CheckPatternPredicate, 116, // (Subtarget->hasVFP4Base())
/*116982*/            OPC_EmitInteger, MVT::i32, 14, 
/*116985*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*116988*/            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)
/*116999*/          /*SwitchType*/ 19, MVT::f16,// ->117020
/*117001*/            OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*117003*/            OPC_EmitInteger, MVT::i32, 14, 
/*117006*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117009*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMSH), 0,
                          MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm, (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sdin)) - Complexity = 6
                      // Dst: (VFNMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/*117020*/          0, // EndSwitchType
/*117021*/        /*Scope*/ 66, /*->117088*/
/*117022*/          OPC_RecordChild2, // #2 = $Ddin
/*117023*/          OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->117045
/*117026*/            OPC_CheckPatternPredicate, 115, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base())
/*117028*/            OPC_EmitInteger, MVT::i32, 14, 
/*117031*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117034*/            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)
/*117045*/          /*SwitchType*/ 19, MVT::f32,// ->117066
/*117047*/            OPC_CheckPatternPredicate, 116, // (Subtarget->hasVFP4Base())
/*117049*/            OPC_EmitInteger, MVT::i32, 14, 
/*117052*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117055*/            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)
/*117066*/          /*SwitchType*/ 19, MVT::f16,// ->117087
/*117068*/            OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*117070*/            OPC_EmitInteger, MVT::i32, 14, 
/*117073*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117076*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAH), 0,
                          MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sdin) - Complexity = 3
                      // Dst: (VFMAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/*117087*/          0, // EndSwitchType
/*117088*/        0, /*End of Scope*/
/*117089*/      0, /*End of Scope*/
/*117090*/    /*Scope*/ 96, /*->117187*/
/*117091*/      OPC_MoveChild0,
/*117092*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/*117095*/      OPC_RecordChild0, // #0 = $Vn
/*117096*/      OPC_MoveParent,
/*117097*/      OPC_RecordChild1, // #1 = $Vm
/*117098*/      OPC_RecordChild2, // #2 = $src1
/*117099*/      OPC_SwitchType /*3 cases */, 19, MVT::v2f32,// ->117121
/*117102*/        OPC_CheckPatternPredicate, 117, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base())
/*117104*/        OPC_EmitInteger, MVT::i32, 14, 
/*117107*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117110*/        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)
/*117121*/      /*SwitchType*/ 42, MVT::v4f32,// ->117165
/*117123*/        OPC_Scope, 19, /*->117144*/ // 2 children in Scope
/*117125*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base())
/*117127*/          OPC_EmitInteger, MVT::i32, 14, 
/*117130*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117133*/          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)
/*117144*/        /*Scope*/ 19, /*->117164*/
/*117145*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*117147*/          OPC_EmitInteger, MVT::i32, 0, 
/*117150*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117153*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VFMSf32), 0,
                        MVT::v4f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fma:{ *:[v4f32] } (fneg:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$src1), MQPR:{ *:[v4f32] }:$src2, MQPR:{ *:[v4f32] }:$src3) - Complexity = 6
                    // Dst: (MVE_VFMSf32:{ *:[v4f32] } ?:{ *:[v4f32] }:$src3, ?:{ *:[v4f32] }:$src1, ?:{ *:[v4f32] }:$src2)
/*117164*/        0, /*End of Scope*/
/*117165*/      /*SwitchType*/ 19, MVT::v8f16,// ->117186
/*117167*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*117169*/        OPC_EmitInteger, MVT::i32, 0, 
/*117172*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117175*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VFMSf16), 0,
                      MVT::v8f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fma:{ *:[v8f16] } (fneg:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$src1), MQPR:{ *:[v8f16] }:$src2, MQPR:{ *:[v8f16] }:$src3) - Complexity = 6
                  // Dst: (MVE_VFMSf16:{ *:[v8f16] } ?:{ *:[v8f16] }:$src3, ?:{ *:[v8f16] }:$src1, ?:{ *:[v8f16] }:$src2)
/*117186*/      0, // EndSwitchType
/*117187*/    /*Scope*/ 7|128,1/*135*/, /*->117324*/
/*117189*/      OPC_RecordChild0, // #0 = $Vn
/*117190*/      OPC_RecordChild1, // #1 = $Vm
/*117191*/      OPC_RecordChild2, // #2 = $src1
/*117192*/      OPC_SwitchType /*4 cases */, 19, MVT::v4f16,// ->117214
/*117195*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*117197*/        OPC_EmitInteger, MVT::i32, 14, 
/*117200*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117203*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAhd), 0,
                      MVT::v4f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                  // Src: (fma:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm, DPR:{ *:[v4f16] }:$src1) - Complexity = 3
                  // Dst: (VFMAhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/*117214*/      /*SwitchType*/ 42, MVT::v8f16,// ->117258
/*117216*/        OPC_Scope, 19, /*->117237*/ // 2 children in Scope
/*117218*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*117220*/          OPC_EmitInteger, MVT::i32, 14, 
/*117223*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117226*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VFMAhq), 0,
                        MVT::v8f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fma:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm, QPR:{ *:[v8f16] }:$src1) - Complexity = 3
                    // Dst: (VFMAhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/*117237*/        /*Scope*/ 19, /*->117257*/
/*117238*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*117240*/          OPC_EmitInteger, MVT::i32, 0, 
/*117243*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117246*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VFMAf16), 0,
                        MVT::v8f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fma:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$src1, MQPR:{ *:[v8f16] }:$src2, MQPR:{ *:[v8f16] }:$src3) - Complexity = 3
                    // Dst: (MVE_VFMAf16:{ *:[v8f16] } ?:{ *:[v8f16] }:$src3, ?:{ *:[v8f16] }:$src1, ?:{ *:[v8f16] }:$src2)
/*117257*/        0, /*End of Scope*/
/*117258*/      /*SwitchType*/ 19, MVT::v2f32,// ->117279
/*117260*/        OPC_CheckPatternPredicate, 117, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base())
/*117262*/        OPC_EmitInteger, MVT::i32, 14, 
/*117265*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117268*/        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)
/*117279*/      /*SwitchType*/ 42, MVT::v4f32,// ->117323
/*117281*/        OPC_Scope, 19, /*->117302*/ // 2 children in Scope
/*117283*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base())
/*117285*/          OPC_EmitInteger, MVT::i32, 14, 
/*117288*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117291*/          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)
/*117302*/        /*Scope*/ 19, /*->117322*/
/*117303*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*117305*/          OPC_EmitInteger, MVT::i32, 0, 
/*117308*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117311*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VFMAf32), 0,
                        MVT::v4f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                    // Src: (fma:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$src1, MQPR:{ *:[v4f32] }:$src2, MQPR:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (MVE_VFMAf32:{ *:[v4f32] } ?:{ *:[v4f32] }:$src3, ?:{ *:[v4f32] }:$src1, ?:{ *:[v4f32] }:$src2)
/*117322*/        0, /*End of Scope*/
/*117323*/      0, // EndSwitchType
/*117324*/    0, /*End of Scope*/
/*117325*/  /*SwitchOpcode*/ 30|128,5/*670*/, TARGET_VAL(ISD::FNEG),// ->117999
/*117329*/    OPC_Scope, 16|128,3/*400*/, /*->117732*/ // 2 children in Scope
/*117332*/      OPC_MoveChild0,
/*117333*/      OPC_SwitchOpcode /*3 cases */, 97|128,1/*225*/, TARGET_VAL(ISD::FMA),// ->117563
/*117338*/        OPC_Scope, 74, /*->117414*/ // 2 children in Scope
/*117340*/          OPC_MoveChild0,
/*117341*/          OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/*117344*/          OPC_RecordChild0, // #0 = $Dn
/*117345*/          OPC_MoveParent,
/*117346*/          OPC_RecordChild1, // #1 = $Dm
/*117347*/          OPC_RecordChild2, // #2 = $Ddin
/*117348*/          OPC_MoveParent,
/*117349*/          OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->117371
/*117352*/            OPC_CheckPatternPredicate, 115, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base())
/*117354*/            OPC_EmitInteger, MVT::i32, 14, 
/*117357*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117360*/            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)
/*117371*/          /*SwitchType*/ 19, MVT::f32,// ->117392
/*117373*/            OPC_CheckPatternPredicate, 116, // (Subtarget->hasVFP4Base())
/*117375*/            OPC_EmitInteger, MVT::i32, 14, 
/*117378*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117381*/            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)
/*117392*/          /*SwitchType*/ 19, MVT::f16,// ->117413
/*117394*/            OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*117396*/            OPC_EmitInteger, MVT::i32, 14, 
/*117399*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117402*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMSH), 0,
                          MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (fneg:{ *:[f16] } (fma:{ *:[f16] } (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sn), HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sdin)) - Complexity = 9
                      // Dst: (VFNMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/*117413*/          0, // EndSwitchType
/*117414*/        /*Scope*/ 18|128,1/*146*/, /*->117562*/
/*117416*/          OPC_RecordChild0, // #0 = $Dn
/*117417*/          OPC_Scope, 73, /*->117492*/ // 2 children in Scope
/*117419*/            OPC_MoveChild1,
/*117420*/            OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/*117423*/            OPC_RecordChild0, // #1 = $Dm
/*117424*/            OPC_MoveParent,
/*117425*/            OPC_RecordChild2, // #2 = $Ddin
/*117426*/            OPC_MoveParent,
/*117427*/            OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->117449
/*117430*/              OPC_CheckPatternPredicate, 115, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base())
/*117432*/              OPC_EmitInteger, MVT::i32, 14, 
/*117435*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117438*/              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)
/*117449*/            /*SwitchType*/ 19, MVT::f32,// ->117470
/*117451*/              OPC_CheckPatternPredicate, 116, // (Subtarget->hasVFP4Base())
/*117453*/              OPC_EmitInteger, MVT::i32, 14, 
/*117456*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117459*/              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)
/*117470*/            /*SwitchType*/ 19, MVT::f16,// ->117491
/*117472*/              OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*117474*/              OPC_EmitInteger, MVT::i32, 14, 
/*117477*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117480*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMSH), 0,
                            MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (fneg:{ *:[f16] } (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sn, (fneg:{ *:[f16] } HPR:{ *:[f16] }:$Sm), HPR:{ *:[f16] }:$Sdin)) - Complexity = 9
                        // Dst: (VFNMSH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/*117491*/            0, // EndSwitchType
/*117492*/          /*Scope*/ 68, /*->117561*/
/*117493*/            OPC_RecordChild1, // #1 = $Dm
/*117494*/            OPC_RecordChild2, // #2 = $Ddin
/*117495*/            OPC_MoveParent,
/*117496*/            OPC_SwitchType /*3 cases */, 19, MVT::f64,// ->117518
/*117499*/              OPC_CheckPatternPredicate, 115, // (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base())
/*117501*/              OPC_EmitInteger, MVT::i32, 14, 
/*117504*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117507*/              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)
/*117518*/            /*SwitchType*/ 19, MVT::f32,// ->117539
/*117520*/              OPC_CheckPatternPredicate, 116, // (Subtarget->hasVFP4Base())
/*117522*/              OPC_EmitInteger, MVT::i32, 14, 
/*117525*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117528*/              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)
/*117539*/            /*SwitchType*/ 19, MVT::f16,// ->117560
/*117541*/              OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*117543*/              OPC_EmitInteger, MVT::i32, 14, 
/*117546*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117549*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VFNMAH), 0,
                            MVT::f16, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (fneg:{ *:[f16] } (fma:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm, HPR:{ *:[f16] }:$Sdin)) - Complexity = 6
                        // Dst: (VFNMAH:{ *:[f16] } HPR:{ *:[f16] }:$Sdin, HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/*117560*/            0, // EndSwitchType
/*117561*/          0, /*End of Scope*/
/*117562*/        0, /*End of Scope*/
/*117563*/      /*SwitchOpcode*/ 65, TARGET_VAL(ISD::FMUL),// ->117631
/*117566*/        OPC_RecordChild0, // #0 = $Dn
/*117567*/        OPC_RecordChild1, // #1 = $Dm
/*117568*/        OPC_MoveParent,
/*117569*/        OPC_SwitchType /*3 cases */, 18, MVT::f64,// ->117590
/*117572*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*117574*/          OPC_EmitInteger, MVT::i32, 14, 
/*117577*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117580*/          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)
/*117590*/        /*SwitchType*/ 18, MVT::f32,// ->117610
/*117592*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasVFP2Base())
/*117594*/          OPC_EmitInteger, MVT::i32, 14, 
/*117597*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117600*/          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)
/*117610*/        /*SwitchType*/ 18, MVT::f16,// ->117630
/*117612*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*117614*/          OPC_EmitInteger, MVT::i32, 14, 
/*117617*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117620*/          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)
/*117630*/        0, // EndSwitchType
/*117631*/      /*SwitchOpcode*/ 97, TARGET_VAL(ARMISD::VMOVDRR),// ->117731
/*117634*/        OPC_RecordChild0, // #0 = $Rl
/*117635*/        OPC_RecordChild1, // #1 = $Rh
/*117636*/        OPC_MoveParent,
/*117637*/        OPC_Scope, 45, /*->117684*/ // 2 children in Scope
/*117639*/          OPC_CheckPatternPredicate, 4, // (!Subtarget->isThumb())
/*117641*/          OPC_EmitInteger, MVT::i32, 0|128,0|128,0|128,0|128,8/*2147483648*/, 
/*117648*/          OPC_EmitInteger, MVT::i32, 14, 
/*117651*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117654*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117657*/          OPC_EmitNode1, TARGET_VAL(ARM::EORri), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5,  // Results = #6
/*117668*/          OPC_EmitInteger, MVT::i32, 14, 
/*117671*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117674*/          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] }))
/*117684*/        /*Scope*/ 45, /*->117730*/
/*117685*/          OPC_CheckPatternPredicate, 1, // (Subtarget->isThumb2())
/*117687*/          OPC_EmitInteger, MVT::i32, 0|128,0|128,0|128,0|128,8/*2147483648*/, 
/*117694*/          OPC_EmitInteger, MVT::i32, 14, 
/*117697*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117700*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117703*/          OPC_EmitNode1, TARGET_VAL(ARM::t2EORri), 0,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5,  // Results = #6
/*117714*/          OPC_EmitInteger, MVT::i32, 14, 
/*117717*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117720*/          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] }))
/*117730*/        0, /*End of Scope*/
/*117731*/      0, // EndSwitchOpcode
/*117732*/    /*Scope*/ 8|128,2/*264*/, /*->117998*/
/*117734*/      OPC_RecordChild0, // #0 = $Dm
/*117735*/      OPC_SwitchType /*7 cases */, 17, MVT::f64,// ->117755
/*117738*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*117740*/        OPC_EmitInteger, MVT::i32, 14, 
/*117743*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117746*/        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)
/*117755*/      /*SwitchType*/ 89, MVT::f32,// ->117846
/*117757*/        OPC_Scope, 17, /*->117776*/ // 2 children in Scope
/*117759*/          OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*117761*/          OPC_EmitInteger, MVT::i32, 14, 
/*117764*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117767*/          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)
/*117776*/        /*Scope*/ 68, /*->117845*/
/*117777*/          OPC_CheckPatternPredicate, 83, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/*117779*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #1
/*117785*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*117788*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*117796*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*117799*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/*117808*/          OPC_EmitInteger, MVT::i32, 14, 
/*117811*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117814*/          OPC_EmitNode1, TARGET_VAL(ARM::VNEGfd), 0,
                        MVT::f64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/*117823*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*117826*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/*117834*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*117837*/          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] })
/*117845*/        0, /*End of Scope*/
/*117846*/      /*SwitchType*/ 17, MVT::f16,// ->117865
/*117848*/        OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*117850*/        OPC_EmitInteger, MVT::i32, 14, 
/*117853*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117856*/        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)
/*117865*/      /*SwitchType*/ 17, MVT::v2f32,// ->117884
/*117867*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*117869*/        OPC_EmitInteger, MVT::i32, 14, 
/*117872*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117875*/        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)
/*117884*/      /*SwitchType*/ 45, MVT::v4f32,// ->117931
/*117886*/        OPC_Scope, 17, /*->117905*/ // 2 children in Scope
/*117888*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*117890*/          OPC_EmitInteger, MVT::i32, 14, 
/*117893*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117896*/          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)
/*117905*/        /*Scope*/ 24, /*->117930*/
/*117906*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*117908*/          OPC_EmitInteger, MVT::i32, 0, 
/*117911*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117914*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*117920*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VNEGf32), 0,
                        MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fneg:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (MVE_VNEGf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$src)
/*117930*/        0, /*End of Scope*/
/*117931*/      /*SwitchType*/ 17, MVT::v4f16,// ->117950
/*117933*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*117935*/        OPC_EmitInteger, MVT::i32, 14, 
/*117938*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117941*/        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)
/*117950*/      /*SwitchType*/ 45, MVT::v8f16,// ->117997
/*117952*/        OPC_Scope, 17, /*->117971*/ // 2 children in Scope
/*117954*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*117956*/          OPC_EmitInteger, MVT::i32, 14, 
/*117959*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117962*/          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)
/*117971*/        /*Scope*/ 24, /*->117996*/
/*117972*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*117974*/          OPC_EmitInteger, MVT::i32, 0, 
/*117977*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*117980*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*117986*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VNEGf16), 0,
                        MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fneg:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                    // Dst: (MVE_VNEGf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$src)
/*117996*/        0, /*End of Scope*/
/*117997*/      0, // EndSwitchType
/*117998*/    0, /*End of Scope*/
/*117999*/  /*SwitchOpcode*/ 111|128,9/*1263*/, TARGET_VAL(ISD::FMUL),// ->119266
/*118003*/    OPC_Scope, 49, /*->118054*/ // 8 children in Scope
/*118005*/      OPC_MoveChild0,
/*118006*/      OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/*118009*/      OPC_RecordChild0, // #0 = $a
/*118010*/      OPC_MoveParent,
/*118011*/      OPC_RecordChild1, // #1 = $b
/*118012*/      OPC_SwitchType /*2 cases */, 18, MVT::f64,// ->118033
/*118015*/        OPC_CheckPatternPredicate, 118, // (Subtarget->hasFP64()) && (!TM.Options.HonorSignDependentRoundingFPMath())
/*118017*/        OPC_EmitInteger, MVT::i32, 14, 
/*118020*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118023*/        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)
/*118033*/      /*SwitchType*/ 18, MVT::f32,// ->118053
/*118035*/        OPC_CheckPatternPredicate, 119, // (!TM.Options.HonorSignDependentRoundingFPMath())
/*118037*/        OPC_EmitInteger, MVT::i32, 14, 
/*118040*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118043*/        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)
/*118053*/      0, // EndSwitchType
/*118054*/    /*Scope*/ 87|128,2/*343*/, /*->118399*/
/*118056*/      OPC_RecordChild0, // #0 = $b
/*118057*/      OPC_Scope, 48, /*->118107*/ // 3 children in Scope
/*118059*/        OPC_MoveChild1,
/*118060*/        OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
/*118063*/        OPC_RecordChild0, // #1 = $a
/*118064*/        OPC_MoveParent,
/*118065*/        OPC_SwitchType /*2 cases */, 18, MVT::f64,// ->118086
/*118068*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasFP64()) && (!TM.Options.HonorSignDependentRoundingFPMath())
/*118070*/          OPC_EmitInteger, MVT::i32, 14, 
/*118073*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118076*/          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)
/*118086*/        /*SwitchType*/ 18, MVT::f32,// ->118106
/*118088*/          OPC_CheckPatternPredicate, 119, // (!TM.Options.HonorSignDependentRoundingFPMath())
/*118090*/          OPC_EmitInteger, MVT::i32, 14, 
/*118093*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118096*/          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)
/*118106*/        0, // EndSwitchType
/*118107*/      /*Scope*/ 37|128,1/*165*/, /*->118274*/
/*118109*/        OPC_RecordChild1, // #1 = $Dm
/*118110*/        OPC_SwitchType /*3 cases */, 18, MVT::f64,// ->118131
/*118113*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*118115*/          OPC_EmitInteger, MVT::i32, 14, 
/*118118*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118121*/          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)
/*118131*/        /*SwitchType*/ 120, MVT::f32,// ->118253
/*118133*/          OPC_Scope, 18, /*->118153*/ // 2 children in Scope
/*118135*/            OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*118137*/            OPC_EmitInteger, MVT::i32, 14, 
/*118140*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118143*/            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)
/*118153*/          /*Scope*/ 98, /*->118252*/
/*118154*/            OPC_CheckPatternPredicate, 83, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/*118156*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #2
/*118162*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*118165*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*118173*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*118176*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*118185*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #7
/*118191*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*118194*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 7, 8,  // Results = #9
/*118202*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*118205*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*118214*/            OPC_EmitInteger, MVT::i32, 14, 
/*118217*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118220*/            OPC_EmitNode1, TARGET_VAL(ARM::VMULfd), 0,
                          MVT::f64, 4/*#Ops*/, 6, 11, 12, 13,  // Results = #14
/*118230*/            OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*118233*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f32, 2/*#Ops*/, 14, 15,  // Results = #16
/*118241*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*118244*/            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] })
/*118252*/          0, /*End of Scope*/
/*118253*/        /*SwitchType*/ 18, MVT::f16,// ->118273
/*118255*/          OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*118257*/          OPC_EmitInteger, MVT::i32, 14, 
/*118260*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118263*/          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)
/*118273*/        0, // EndSwitchType
/*118274*/      /*Scope*/ 123, /*->118398*/
/*118275*/        OPC_MoveChild1,
/*118276*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*118279*/        OPC_RecordChild0, // #1 = $Vm
/*118280*/        OPC_Scope, 57, /*->118339*/ // 2 children in Scope
/*118282*/          OPC_CheckChild0Type, MVT::v2f32,
/*118284*/          OPC_RecordChild1, // #2 = $lane
/*118285*/          OPC_MoveChild1,
/*118286*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*118289*/          OPC_MoveParent,
/*118290*/          OPC_MoveParent,
/*118291*/          OPC_SwitchType /*2 cases */, 21, MVT::v2f32,// ->118315
/*118294*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*118296*/            OPC_EmitConvertToTarget, 2,
/*118298*/            OPC_EmitInteger, MVT::i32, 14, 
/*118301*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118304*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfd), 0,
                          MVT::v2f32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, (ARMvduplane:{ *:[v2f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/*118315*/          /*SwitchType*/ 21, MVT::v4f32,// ->118338
/*118317*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*118319*/            OPC_EmitConvertToTarget, 2,
/*118321*/            OPC_EmitInteger, MVT::i32, 14, 
/*118324*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118327*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfq), 0,
                          MVT::v4f32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, (ARMvduplane:{ *:[v4f32] } DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, DPR_VFP2:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/*118338*/          0, // EndSwitchType
/*118339*/        /*Scope*/ 57, /*->118397*/
/*118340*/          OPC_CheckChild0Type, MVT::v4f16,
/*118342*/          OPC_RecordChild1, // #2 = $lane
/*118343*/          OPC_MoveChild1,
/*118344*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*118347*/          OPC_MoveParent,
/*118348*/          OPC_MoveParent,
/*118349*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f16,// ->118373
/*118352*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*118354*/            OPC_EmitConvertToTarget, 2,
/*118356*/            OPC_EmitInteger, MVT::i32, 14, 
/*118359*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118362*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslhd), 0,
                          MVT::v4f16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, (ARMvduplane:{ *:[v4f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/*118373*/          /*SwitchType*/ 21, MVT::v8f16,// ->118396
/*118375*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*118377*/            OPC_EmitConvertToTarget, 2,
/*118379*/            OPC_EmitInteger, MVT::i32, 14, 
/*118382*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118385*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslhq), 0,
                          MVT::v8f16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, (ARMvduplane:{ *:[v8f16] } DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                      // Dst: (VMULslhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, DPR_8:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/*118396*/          0, // EndSwitchType
/*118397*/        0, /*End of Scope*/
/*118398*/      0, /*End of Scope*/
/*118399*/    /*Scope*/ 125, /*->118525*/
/*118400*/      OPC_MoveChild0,
/*118401*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*118404*/      OPC_RecordChild0, // #0 = $Vm
/*118405*/      OPC_Scope, 58, /*->118465*/ // 2 children in Scope
/*118407*/        OPC_CheckChild0Type, MVT::v2f32,
/*118409*/        OPC_RecordChild1, // #1 = $lane
/*118410*/        OPC_MoveChild1,
/*118411*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*118414*/        OPC_MoveParent,
/*118415*/        OPC_MoveParent,
/*118416*/        OPC_RecordChild1, // #2 = $Vn
/*118417*/        OPC_SwitchType /*2 cases */, 21, MVT::v2f32,// ->118441
/*118420*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*118422*/          OPC_EmitConvertToTarget, 1,
/*118424*/          OPC_EmitInteger, MVT::i32, 14, 
/*118427*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118430*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfd), 0,
                        MVT::v2f32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (fmul:{ *:[v2f32] } (ARMvduplane:{ *:[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)
/*118441*/        /*SwitchType*/ 21, MVT::v4f32,// ->118464
/*118443*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*118445*/          OPC_EmitConvertToTarget, 1,
/*118447*/          OPC_EmitInteger, MVT::i32, 14, 
/*118450*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118453*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfq), 0,
                        MVT::v4f32, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (fmul:{ *:[v4f32] } (ARMvduplane:{ *:[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)
/*118464*/        0, // EndSwitchType
/*118465*/      /*Scope*/ 58, /*->118524*/
/*118466*/        OPC_CheckChild0Type, MVT::v4f16,
/*118468*/        OPC_RecordChild1, // #1 = $lane
/*118469*/        OPC_MoveChild1,
/*118470*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*118473*/        OPC_MoveParent,
/*118474*/        OPC_MoveParent,
/*118475*/        OPC_RecordChild1, // #2 = $Vn
/*118476*/        OPC_SwitchType /*2 cases */, 21, MVT::v4f16,// ->118500
/*118479*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*118481*/          OPC_EmitConvertToTarget, 1,
/*118483*/          OPC_EmitInteger, MVT::i32, 14, 
/*118486*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118489*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslhd), 0,
                        MVT::v4f16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (fmul:{ *:[v4f16] } (ARMvduplane:{ *:[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)
/*118500*/        /*SwitchType*/ 21, MVT::v8f16,// ->118523
/*118502*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*118504*/          OPC_EmitConvertToTarget, 1,
/*118506*/          OPC_EmitInteger, MVT::i32, 14, 
/*118509*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118512*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslhq), 0,
                        MVT::v8f16, 5/*#Ops*/, 2, 0, 3, 4, 5, 
                    // Src: (fmul:{ *:[v8f16] } (ARMvduplane:{ *:[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)
/*118523*/        0, // EndSwitchType
/*118524*/      0, /*End of Scope*/
/*118525*/    /*Scope*/ 106, /*->118632*/
/*118526*/      OPC_RecordChild0, // #0 = $src1
/*118527*/      OPC_MoveChild1,
/*118528*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*118531*/      OPC_RecordChild0, // #1 = $src2
/*118532*/      OPC_Scope, 48, /*->118582*/ // 2 children in Scope
/*118534*/        OPC_CheckChild0Type, MVT::v4f32,
/*118536*/        OPC_RecordChild1, // #2 = $lane
/*118537*/        OPC_MoveChild1,
/*118538*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*118541*/        OPC_MoveParent,
/*118542*/        OPC_MoveParent,
/*118543*/        OPC_CheckType, MVT::v4f32,
/*118545*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*118547*/        OPC_EmitConvertToTarget, 2,
/*118549*/        OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/*118552*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*118560*/        OPC_EmitConvertToTarget, 2,
/*118562*/        OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/*118565*/        OPC_EmitInteger, MVT::i32, 14, 
/*118568*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118571*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfq), 0,
                      MVT::v4f32, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                  // Src: (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$src1, (ARMvduplane:{ *:[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))
/*118582*/      /*Scope*/ 48, /*->118631*/
/*118583*/        OPC_CheckChild0Type, MVT::v8f16,
/*118585*/        OPC_RecordChild1, // #2 = $lane
/*118586*/        OPC_MoveChild1,
/*118587*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*118590*/        OPC_MoveParent,
/*118591*/        OPC_MoveParent,
/*118592*/        OPC_CheckType, MVT::v8f16,
/*118594*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*118596*/        OPC_EmitConvertToTarget, 2,
/*118598*/        OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/*118601*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4f16, 2/*#Ops*/, 1, 4,  // Results = #5
/*118609*/        OPC_EmitConvertToTarget, 2,
/*118611*/        OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/*118614*/        OPC_EmitInteger, MVT::i32, 14, 
/*118617*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118620*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslhq), 0,
                      MVT::v8f16, 5/*#Ops*/, 0, 5, 7, 8, 9, 
                  // Src: (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (ARMvduplane:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src2, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                  // Dst: (VMULslhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (EXTRACT_SUBREG:{ *:[v4f16] } QPR:{ *:[v8f16] }:$src2, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/*118631*/      0, /*End of Scope*/
/*118632*/    /*Scope*/ 107, /*->118740*/
/*118633*/      OPC_MoveChild0,
/*118634*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*118637*/      OPC_RecordChild0, // #0 = $src2
/*118638*/      OPC_Scope, 49, /*->118689*/ // 2 children in Scope
/*118640*/        OPC_CheckChild0Type, MVT::v4f32,
/*118642*/        OPC_RecordChild1, // #1 = $lane
/*118643*/        OPC_MoveChild1,
/*118644*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*118647*/        OPC_MoveParent,
/*118648*/        OPC_MoveParent,
/*118649*/        OPC_RecordChild1, // #2 = $src1
/*118650*/        OPC_CheckType, MVT::v4f32,
/*118652*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*118654*/        OPC_EmitConvertToTarget, 1,
/*118656*/        OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/*118659*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 4,  // Results = #5
/*118667*/        OPC_EmitConvertToTarget, 1,
/*118669*/        OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/*118672*/        OPC_EmitInteger, MVT::i32, 14, 
/*118675*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118678*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfq), 0,
                      MVT::v4f32, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                  // Src: (fmul:{ *:[v4f32] } (ARMvduplane:{ *:[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))
/*118689*/      /*Scope*/ 49, /*->118739*/
/*118690*/        OPC_CheckChild0Type, MVT::v8f16,
/*118692*/        OPC_RecordChild1, // #1 = $lane
/*118693*/        OPC_MoveChild1,
/*118694*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*118697*/        OPC_MoveParent,
/*118698*/        OPC_MoveParent,
/*118699*/        OPC_RecordChild1, // #2 = $src1
/*118700*/        OPC_CheckType, MVT::v8f16,
/*118702*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*118704*/        OPC_EmitConvertToTarget, 1,
/*118706*/        OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/*118709*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 4,  // Results = #5
/*118717*/        OPC_EmitConvertToTarget, 1,
/*118719*/        OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/*118722*/        OPC_EmitInteger, MVT::i32, 14, 
/*118725*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118728*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslhq), 0,
                      MVT::v8f16, 5/*#Ops*/, 2, 5, 7, 8, 9, 
                  // Src: (fmul:{ *:[v8f16] } (ARMvduplane:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src2, (imm:{ *:[i32] }):$lane), QPR:{ *:[v8f16] }:$src1) - Complexity = 9
                  // Dst: (VMULslhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (EXTRACT_SUBREG:{ *:[v4f16] } QPR:{ *:[v8f16] }:$src2, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/*118739*/      0, /*End of Scope*/
/*118740*/    /*Scope*/ 60|128,1/*188*/, /*->118930*/
/*118742*/      OPC_RecordChild0, // #0 = $Rn
/*118743*/      OPC_MoveChild1,
/*118744*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/*118747*/      OPC_RecordChild0, // #1 = $Rm
/*118748*/      OPC_Scope, 89, /*->118839*/ // 2 children in Scope
/*118750*/        OPC_CheckChild0Type, MVT::f32,
/*118752*/        OPC_MoveParent,
/*118753*/        OPC_SwitchType /*2 cases */, 40, MVT::v2f32,// ->118796
/*118756*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*118758*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #2
/*118764*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*118767*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*118776*/          OPC_EmitInteger, MVT::i32, 0, 
/*118779*/          OPC_EmitInteger, MVT::i32, 14, 
/*118782*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118785*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfd), 0,
                        MVT::v2f32, 5/*#Ops*/, 0, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Rn, (ARMvdup:{ *:[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] })
/*118796*/        /*SwitchType*/ 40, MVT::v4f32,// ->118838
/*118798*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*118800*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #2
/*118806*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*118809*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*118818*/          OPC_EmitInteger, MVT::i32, 0, 
/*118821*/          OPC_EmitInteger, MVT::i32, 14, 
/*118824*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118827*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfq), 0,
                        MVT::v4f32, 5/*#Ops*/, 0, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Rn, (ARMvdup:{ *:[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] })
/*118838*/        0, // EndSwitchType
/*118839*/      /*Scope*/ 89, /*->118929*/
/*118840*/        OPC_CheckChild0Type, MVT::f16,
/*118842*/        OPC_MoveParent,
/*118843*/        OPC_SwitchType /*2 cases */, 40, MVT::v4f16,// ->118886
/*118846*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*118848*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f16, 0/*#Ops*/,  // Results = #2
/*118854*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*118857*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f16, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*118866*/          OPC_EmitInteger, MVT::i32, 0, 
/*118869*/          OPC_EmitInteger, MVT::i32, 14, 
/*118872*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118875*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslhd), 0,
                        MVT::v4f16, 5/*#Ops*/, 0, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Rn, (ARMvdup:{ *:[v4f16] } HPR:{ *:[f16] }:$Rm)) - Complexity = 6
                    // Dst: (VMULslhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Rn, (INSERT_SUBREG:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), HPR:{ *:[f16] }:$Rm, ssub_0:{ *:[i32] }), 0:{ *:[i32] })
/*118886*/        /*SwitchType*/ 40, MVT::v8f16,// ->118928
/*118888*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*118890*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f16, 0/*#Ops*/,  // Results = #2
/*118896*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*118899*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f16, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*118908*/          OPC_EmitInteger, MVT::i32, 0, 
/*118911*/          OPC_EmitInteger, MVT::i32, 14, 
/*118914*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118917*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslhq), 0,
                        MVT::v8f16, 5/*#Ops*/, 0, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Rn, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$Rm)) - Complexity = 6
                    // Dst: (VMULslhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Rn, (INSERT_SUBREG:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), HPR:{ *:[f16] }:$Rm, ssub_0:{ *:[i32] }), 0:{ *:[i32] })
/*118928*/        0, // EndSwitchType
/*118929*/      0, /*End of Scope*/
/*118930*/    /*Scope*/ 61|128,1/*189*/, /*->119121*/
/*118932*/      OPC_MoveChild0,
/*118933*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/*118936*/      OPC_RecordChild0, // #0 = $Rm
/*118937*/      OPC_Scope, 90, /*->119029*/ // 2 children in Scope
/*118939*/        OPC_CheckChild0Type, MVT::f32,
/*118941*/        OPC_MoveParent,
/*118942*/        OPC_RecordChild1, // #1 = $Rn
/*118943*/        OPC_SwitchType /*2 cases */, 40, MVT::v2f32,// ->118986
/*118946*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*118948*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #2
/*118954*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*118957*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*118966*/          OPC_EmitInteger, MVT::i32, 0, 
/*118969*/          OPC_EmitInteger, MVT::i32, 14, 
/*118972*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*118975*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfd), 0,
                        MVT::v2f32, 5/*#Ops*/, 1, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v2f32] } (ARMvdup:{ *:[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] })
/*118986*/        /*SwitchType*/ 40, MVT::v4f32,// ->119028
/*118988*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*118990*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #2
/*118996*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*118999*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*119008*/          OPC_EmitInteger, MVT::i32, 0, 
/*119011*/          OPC_EmitInteger, MVT::i32, 14, 
/*119014*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119017*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslfq), 0,
                        MVT::v4f32, 5/*#Ops*/, 1, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v4f32] } (ARMvdup:{ *:[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] })
/*119028*/        0, // EndSwitchType
/*119029*/      /*Scope*/ 90, /*->119120*/
/*119030*/        OPC_CheckChild0Type, MVT::f16,
/*119032*/        OPC_MoveParent,
/*119033*/        OPC_RecordChild1, // #1 = $Rn
/*119034*/        OPC_SwitchType /*2 cases */, 40, MVT::v4f16,// ->119077
/*119037*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*119039*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f16, 0/*#Ops*/,  // Results = #2
/*119045*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*119048*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*119057*/          OPC_EmitInteger, MVT::i32, 0, 
/*119060*/          OPC_EmitInteger, MVT::i32, 14, 
/*119063*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119066*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslhd), 0,
                        MVT::v4f16, 5/*#Ops*/, 1, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v4f16] } (ARMvdup:{ *:[v4f16] } HPR:{ *:[f16] }:$Rm), DPR:{ *:[v4f16] }:$Rn) - Complexity = 6
                    // Dst: (VMULslhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Rn, (INSERT_SUBREG:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), HPR:{ *:[f16] }:$Rm, ssub_0:{ *:[i32] }), 0:{ *:[i32] })
/*119077*/        /*SwitchType*/ 40, MVT::v8f16,// ->119119
/*119079*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*119081*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f16, 0/*#Ops*/,  // Results = #2
/*119087*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*119090*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*119099*/          OPC_EmitInteger, MVT::i32, 0, 
/*119102*/          OPC_EmitInteger, MVT::i32, 14, 
/*119105*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119108*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULslhq), 0,
                        MVT::v8f16, 5/*#Ops*/, 1, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v8f16] } (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$Rm), QPR:{ *:[v8f16] }:$Rn) - Complexity = 6
                    // Dst: (VMULslhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Rn, (INSERT_SUBREG:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), HPR:{ *:[f16] }:$Rm, ssub_0:{ *:[i32] }), 0:{ *:[i32] })
/*119119*/        0, // EndSwitchType
/*119120*/      0, /*End of Scope*/
/*119121*/    /*Scope*/ 14|128,1/*142*/, /*->119265*/
/*119123*/      OPC_RecordChild0, // #0 = $Vn
/*119124*/      OPC_RecordChild1, // #1 = $Vm
/*119125*/      OPC_SwitchType /*4 cases */, 18, MVT::v2f32,// ->119146
/*119128*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*119130*/        OPC_EmitInteger, MVT::i32, 14, 
/*119133*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119136*/        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)
/*119146*/      /*SwitchType*/ 47, MVT::v4f32,// ->119195
/*119148*/        OPC_Scope, 18, /*->119168*/ // 2 children in Scope
/*119150*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*119152*/          OPC_EmitInteger, MVT::i32, 14, 
/*119155*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119158*/          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)
/*119168*/        /*Scope*/ 25, /*->119194*/
/*119169*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*119171*/          OPC_EmitInteger, MVT::i32, 0, 
/*119174*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119177*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*119183*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULf32), 0,
                        MVT::v4f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fmul:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VMULf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$Qm, MQPR:{ *:[v4f32] }:$Qn)
/*119194*/        0, /*End of Scope*/
/*119195*/      /*SwitchType*/ 18, MVT::v4f16,// ->119215
/*119197*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*119199*/        OPC_EmitInteger, MVT::i32, 14, 
/*119202*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119205*/        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)
/*119215*/      /*SwitchType*/ 47, MVT::v8f16,// ->119264
/*119217*/        OPC_Scope, 18, /*->119237*/ // 2 children in Scope
/*119219*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*119221*/          OPC_EmitInteger, MVT::i32, 14, 
/*119224*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119227*/          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)
/*119237*/        /*Scope*/ 25, /*->119263*/
/*119238*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*119240*/          OPC_EmitInteger, MVT::i32, 0, 
/*119243*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119246*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*119252*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMULf16), 0,
                        MVT::v8f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (fmul:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VMULf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$Qm, MQPR:{ *:[v8f16] }:$Qn)
/*119263*/        0, /*End of Scope*/
/*119264*/      0, // EndSwitchType
/*119265*/    0, /*End of Scope*/
/*119266*/  /*SwitchOpcode*/ 106|128,2/*362*/, TARGET_VAL(ISD::FABS),// ->119632
/*119270*/    OPC_Scope, 93, /*->119365*/ // 2 children in Scope
/*119272*/      OPC_MoveChild0,
/*119273*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVDRR),
/*119276*/      OPC_RecordChild0, // #0 = $Rl
/*119277*/      OPC_RecordChild1, // #1 = $Rh
/*119278*/      OPC_MoveParent,
/*119279*/      OPC_Scope, 41, /*->119322*/ // 2 children in Scope
/*119281*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb())
/*119283*/        OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,7/*2147483647*/, 
/*119290*/        OPC_EmitInteger, MVT::i32, 14, 
/*119293*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119296*/        OPC_EmitNode1, TARGET_VAL(ARM::BFC), 0,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*119306*/        OPC_EmitInteger, MVT::i32, 14, 
/*119309*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119312*/        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] }))
/*119322*/      /*Scope*/ 41, /*->119364*/
/*119323*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasV6T2Ops()) && (Subtarget->isThumb2())
/*119325*/        OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,7/*2147483647*/, 
/*119332*/        OPC_EmitInteger, MVT::i32, 14, 
/*119335*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119338*/        OPC_EmitNode1, TARGET_VAL(ARM::t2BFC), 0,
                      MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*119348*/        OPC_EmitInteger, MVT::i32, 14, 
/*119351*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119354*/        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] }))
/*119364*/      0, /*End of Scope*/
/*119365*/    /*Scope*/ 8|128,2/*264*/, /*->119631*/
/*119367*/      OPC_RecordChild0, // #0 = $Dm
/*119368*/      OPC_SwitchType /*7 cases */, 17, MVT::f64,// ->119388
/*119371*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*119373*/        OPC_EmitInteger, MVT::i32, 14, 
/*119376*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119379*/        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)
/*119388*/      /*SwitchType*/ 89, MVT::f32,// ->119479
/*119390*/        OPC_Scope, 17, /*->119409*/ // 2 children in Scope
/*119392*/          OPC_CheckPatternPredicate, 29, // (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base())
/*119394*/          OPC_EmitInteger, MVT::i32, 14, 
/*119397*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119400*/          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)
/*119409*/        /*Scope*/ 68, /*->119478*/
/*119410*/          OPC_CheckPatternPredicate, 83, // (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP())
/*119412*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #1
/*119418*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*119421*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*119429*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*119432*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/*119441*/          OPC_EmitInteger, MVT::i32, 14, 
/*119444*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119447*/          OPC_EmitNode1, TARGET_VAL(ARM::VABSfd), 0,
                        MVT::f64, 3/*#Ops*/, 5, 6, 7,  // Results = #8
/*119456*/          OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*119459*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f32, 2/*#Ops*/, 8, 9,  // Results = #10
/*119467*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*119470*/          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] })
/*119478*/        0, /*End of Scope*/
/*119479*/      /*SwitchType*/ 17, MVT::f16,// ->119498
/*119481*/        OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*119483*/        OPC_EmitInteger, MVT::i32, 14, 
/*119486*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119489*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VABSH), 0,
                      MVT::f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (fabs:{ *:[f16] } HPR:{ *:[f16] }:$Sm) - Complexity = 3
                  // Dst: (VABSH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
/*119498*/      /*SwitchType*/ 17, MVT::v2f32,// ->119517
/*119500*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*119502*/        OPC_EmitInteger, MVT::i32, 14, 
/*119505*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119508*/        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)
/*119517*/      /*SwitchType*/ 45, MVT::v4f32,// ->119564
/*119519*/        OPC_Scope, 17, /*->119538*/ // 2 children in Scope
/*119521*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*119523*/          OPC_EmitInteger, MVT::i32, 14, 
/*119526*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119529*/          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)
/*119538*/        /*Scope*/ 24, /*->119563*/
/*119539*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*119541*/          OPC_EmitInteger, MVT::i32, 0, 
/*119544*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119547*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*119553*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABSf32), 0,
                        MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fabs:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (MVE_VABSf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$src)
/*119563*/        0, /*End of Scope*/
/*119564*/      /*SwitchType*/ 17, MVT::v4f16,// ->119583
/*119566*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*119568*/        OPC_EmitInteger, MVT::i32, 14, 
/*119571*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119574*/        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)
/*119583*/      /*SwitchType*/ 45, MVT::v8f16,// ->119630
/*119585*/        OPC_Scope, 17, /*->119604*/ // 2 children in Scope
/*119587*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*119589*/          OPC_EmitInteger, MVT::i32, 14, 
/*119592*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119595*/          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)
/*119604*/        /*Scope*/ 24, /*->119629*/
/*119605*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*119607*/          OPC_EmitInteger, MVT::i32, 0, 
/*119610*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119613*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*119619*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABSf16), 0,
                        MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (fabs:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                    // Dst: (MVE_VABSf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$src)
/*119629*/        0, /*End of Scope*/
/*119630*/      0, // EndSwitchType
/*119631*/    0, /*End of Scope*/
/*119632*/  /*SwitchOpcode*/ 81, TARGET_VAL(ISD::ConstantFP),// ->119716
/*119635*/    OPC_RecordNode, // #0 = $imm
/*119636*/    OPC_SwitchType /*3 cases */, 24, MVT::f64,// ->119663
/*119639*/      OPC_CheckPredicate, 97, // Predicate_vfp_f64imm
/*119641*/      OPC_CheckPatternPredicate, 120, // (Subtarget->hasFP64()) && (Subtarget->hasVFP3Base())
/*119643*/      OPC_EmitConvertToTarget, 0,
/*119645*/      OPC_EmitNodeXForm, 23, 1, // vfp_f64imm_xform
/*119648*/      OPC_EmitInteger, MVT::i32, 14, 
/*119651*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119654*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::FCONSTD), 0,
                    MVT::f64, 3/*#Ops*/, 2, 3, 4, 
                // Src: (fpimm:{ *:[f64] })<<P:Predicate_vfp_f64imm>><<X:vfp_f64imm_xform>>:$imm - Complexity = 4
                // Dst: (FCONSTD:{ *:[f64] } (vfp_f64imm_xform:{ *:[f64] } (fpimm:{ *:[f64] }):$imm))
/*119663*/    /*SwitchType*/ 24, MVT::f32,// ->119689
/*119665*/      OPC_CheckPredicate, 98, // Predicate_vfp_f32imm
/*119667*/      OPC_CheckPatternPredicate, 121, // (Subtarget->hasVFP3Base())
/*119669*/      OPC_EmitConvertToTarget, 0,
/*119671*/      OPC_EmitNodeXForm, 24, 1, // vfp_f32imm_xform
/*119674*/      OPC_EmitInteger, MVT::i32, 14, 
/*119677*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119680*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::FCONSTS), 0,
                    MVT::f32, 3/*#Ops*/, 2, 3, 4, 
                // Src: (fpimm:{ *:[f32] })<<P:Predicate_vfp_f32imm>><<X:vfp_f32imm_xform>>:$imm - Complexity = 4
                // Dst: (FCONSTS:{ *:[f32] } (vfp_f32imm_xform:{ *:[f32] } (fpimm:{ *:[f32] }):$imm))
/*119689*/    /*SwitchType*/ 24, MVT::f16,// ->119715
/*119691*/      OPC_CheckPredicate, 99, // Predicate_vfp_f16imm
/*119693*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*119695*/      OPC_EmitConvertToTarget, 0,
/*119697*/      OPC_EmitNodeXForm, 25, 1, // anonymous_5238
/*119700*/      OPC_EmitInteger, MVT::i32, 14, 
/*119703*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119706*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::FCONSTH), 0,
                    MVT::f16, 3/*#Ops*/, 2, 3, 4, 
                // Src: (fpimm:{ *:[f16] })<<P:Predicate_vfp_f16imm>><<X:anonymous_5238>>:$imm - Complexity = 4
                // Dst: (FCONSTH:{ *:[f16] } (anonymous_5238:{ *:[f16] } (fpimm:{ *:[f16] }):$imm))
/*119715*/    0, // EndSwitchType
/*119716*/  /*SwitchOpcode*/ 64, TARGET_VAL(ISD::FDIV),// ->119783
/*119719*/    OPC_RecordChild0, // #0 = $Dn
/*119720*/    OPC_RecordChild1, // #1 = $Dm
/*119721*/    OPC_SwitchType /*3 cases */, 18, MVT::f64,// ->119742
/*119724*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*119726*/      OPC_EmitInteger, MVT::i32, 14, 
/*119729*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119732*/      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)
/*119742*/    /*SwitchType*/ 18, MVT::f32,// ->119762
/*119744*/      OPC_CheckPatternPredicate, 42, // (Subtarget->hasVFP2Base())
/*119746*/      OPC_EmitInteger, MVT::i32, 14, 
/*119749*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119752*/      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)
/*119762*/    /*SwitchType*/ 18, MVT::f16,// ->119782
/*119764*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*119766*/      OPC_EmitInteger, MVT::i32, 14, 
/*119769*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119772*/      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)
/*119782*/    0, // EndSwitchType
/*119783*/  /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(ISD::FMAXNUM),// ->119933
/*119787*/    OPC_RecordChild0, // #0 = $Sn
/*119788*/    OPC_RecordChild1, // #1 = $Sm
/*119789*/    OPC_SwitchType /*7 cases */, 10, MVT::f16,// ->119802
/*119792*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*119794*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VFP_VMAXNMH), 0,
                    MVT::f16, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VFP_VMAXNMH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/*119802*/    /*SwitchType*/ 10, MVT::f32,// ->119814
/*119804*/      OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/*119806*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VFP_VMAXNMS), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) - Complexity = 3
                // Dst: (VFP_VMAXNMS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/*119814*/    /*SwitchType*/ 10, MVT::f64,// ->119826
/*119816*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*119818*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VFP_VMAXNMD), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VFP_VMAXNMD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/*119826*/    /*SwitchType*/ 10, MVT::v2f32,// ->119838
/*119828*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/*119830*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::NEON_VMAXNMNDf), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                // Dst: (NEON_VMAXNMNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/*119838*/    /*SwitchType*/ 39, MVT::v4f32,// ->119879
/*119840*/      OPC_Scope, 10, /*->119852*/ // 2 children in Scope
/*119842*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/*119844*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::NEON_VMAXNMNQf), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fmaxnum:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (NEON_VMAXNMNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/*119852*/      /*Scope*/ 25, /*->119878*/
/*119853*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*119855*/        OPC_EmitInteger, MVT::i32, 0, 
/*119858*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119861*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*119867*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXNMf32), 0,
                      MVT::v4f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fmaxnum:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1, MQPR:{ *:[v4f32] }:$val2) - Complexity = 3
                  // Dst: (MVE_VMAXNMf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1, MQPR:{ *:[v4f32] }:$val2)
/*119878*/      0, /*End of Scope*/
/*119879*/    /*SwitchType*/ 10, MVT::v4f16,// ->119891
/*119881*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/*119883*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::NEON_VMAXNMNDh), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (fmaxnum:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                // Dst: (NEON_VMAXNMNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/*119891*/    /*SwitchType*/ 39, MVT::v8f16,// ->119932
/*119893*/      OPC_Scope, 10, /*->119905*/ // 2 children in Scope
/*119895*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/*119897*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::NEON_VMAXNMNQh), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 1, 
                  // Src: (fmaxnum:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (NEON_VMAXNMNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/*119905*/      /*Scope*/ 25, /*->119931*/
/*119906*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*119908*/        OPC_EmitInteger, MVT::i32, 0, 
/*119911*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*119914*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*119920*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXNMf16), 0,
                      MVT::v8f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fmaxnum:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1, MQPR:{ *:[v8f16] }:$val2) - Complexity = 3
                  // Dst: (MVE_VMAXNMf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1, MQPR:{ *:[v8f16] }:$val2)
/*119931*/      0, /*End of Scope*/
/*119932*/    0, // EndSwitchType
/*119933*/  /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(ISD::FMINNUM),// ->120083
/*119937*/    OPC_RecordChild0, // #0 = $Sn
/*119938*/    OPC_RecordChild1, // #1 = $Sm
/*119939*/    OPC_SwitchType /*7 cases */, 10, MVT::f16,// ->119952
/*119942*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*119944*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VFP_VMINNMH), 0,
                    MVT::f16, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VFP_VMINNMH:{ *:[f16] } HPR:{ *:[f16] }:$Sn, HPR:{ *:[f16] }:$Sm)
/*119952*/    /*SwitchType*/ 10, MVT::f32,// ->119964
/*119954*/      OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/*119956*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VFP_VMINNMS), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm) - Complexity = 3
                // Dst: (VFP_VMINNMS:{ *:[f32] } SPR:{ *:[f32] }:$Sn, SPR:{ *:[f32] }:$Sm)
/*119964*/    /*SwitchType*/ 10, MVT::f64,// ->119976
/*119966*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*119968*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VFP_VMINNMD), 0,
                    MVT::f64, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm) - Complexity = 3
                // Dst: (VFP_VMINNMD:{ *:[f64] } DPR:{ *:[f64] }:$Dn, DPR:{ *:[f64] }:$Dm)
/*119976*/    /*SwitchType*/ 10, MVT::v2f32,// ->119988
/*119978*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/*119980*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::NEON_VMINNMNDf), 0,
                    MVT::v2f32, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                // Dst: (NEON_VMINNMNDf:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/*119988*/    /*SwitchType*/ 39, MVT::v4f32,// ->120029
/*119990*/      OPC_Scope, 10, /*->120002*/ // 2 children in Scope
/*119992*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/*119994*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::NEON_VMINNMNQf), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (fminnum:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (NEON_VMINNMNQf:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/*120002*/      /*Scope*/ 25, /*->120028*/
/*120003*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*120005*/        OPC_EmitInteger, MVT::i32, 0, 
/*120008*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120011*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*120017*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINNMf32), 0,
                      MVT::v4f32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fminnum:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1, MQPR:{ *:[v4f32] }:$val2) - Complexity = 3
                  // Dst: (MVE_VMINNMf32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1, MQPR:{ *:[v4f32] }:$val2)
/*120028*/      0, /*End of Scope*/
/*120029*/    /*SwitchType*/ 10, MVT::v4f16,// ->120041
/*120031*/      OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/*120033*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::NEON_VMINNMNDh), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 1, 
                // Src: (fminnum:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                // Dst: (NEON_VMINNMNDh:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/*120041*/    /*SwitchType*/ 39, MVT::v8f16,// ->120082
/*120043*/      OPC_Scope, 10, /*->120055*/ // 2 children in Scope
/*120045*/        OPC_CheckPatternPredicate, 27, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops())
/*120047*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::NEON_VMINNMNQh), 0,
                      MVT::v8f16, 2/*#Ops*/, 0, 1, 
                  // Src: (fminnum:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (NEON_VMINNMNQh:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/*120055*/      /*Scope*/ 25, /*->120081*/
/*120056*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*120058*/        OPC_EmitInteger, MVT::i32, 0, 
/*120061*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120064*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*120070*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINNMf16), 0,
                      MVT::v8f16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (fminnum:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1, MQPR:{ *:[v8f16] }:$val2) - Complexity = 3
                  // Dst: (MVE_VMINNMf16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1, MQPR:{ *:[v8f16] }:$val2)
/*120081*/      0, /*End of Scope*/
/*120082*/    0, // EndSwitchType
/*120083*/  /*SwitchOpcode*/ 88, TARGET_VAL(ISD::FP_EXTEND),// ->120174
/*120086*/    OPC_RecordChild0, // #0 = $Sm
/*120087*/    OPC_SwitchType /*2 cases */, 53, MVT::f64,// ->120143
/*120090*/      OPC_Scope, 19, /*->120111*/ // 2 children in Scope
/*120092*/        OPC_CheckChild0Type, MVT::f32,
/*120094*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*120096*/        OPC_EmitInteger, MVT::i32, 14, 
/*120099*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120102*/        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)
/*120111*/      /*Scope*/ 30, /*->120142*/
/*120112*/        OPC_CheckChild0Type, MVT::f16,
/*120114*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*120116*/        OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/*120119*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*120127*/        OPC_EmitInteger, MVT::i32, 14, 
/*120130*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120133*/        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] }))
/*120142*/      0, /*End of Scope*/
/*120143*/    /*SwitchType*/ 28, MVT::f32,// ->120173
/*120145*/      OPC_CheckPatternPredicate, 96, // (Subtarget->hasFP16())
/*120147*/      OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/*120150*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*120158*/      OPC_EmitInteger, MVT::i32, 14, 
/*120161*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120164*/      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] }))
/*120173*/    0, // EndSwitchType
/*120174*/  /*SwitchOpcode*/ 88, TARGET_VAL(ISD::FP_ROUND),// ->120265
/*120177*/    OPC_RecordChild0, // #0 = $Dm
/*120178*/    OPC_SwitchType /*2 cases */, 17, MVT::f32,// ->120198
/*120181*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*120183*/      OPC_EmitInteger, MVT::i32, 14, 
/*120186*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120189*/      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)
/*120198*/    /*SwitchType*/ 64, MVT::f16,// ->120264
/*120200*/      OPC_Scope, 30, /*->120232*/ // 2 children in Scope
/*120202*/        OPC_CheckChild0Type, MVT::f32,
/*120204*/        OPC_CheckPatternPredicate, 96, // (Subtarget->hasFP16())
/*120206*/        OPC_EmitInteger, MVT::i32, 14, 
/*120209*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120212*/        OPC_EmitNode1, TARGET_VAL(ARM::VCVTBSH), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/*120221*/        OPC_EmitInteger, MVT::i32, ARM::HPRRegClassID,
/*120224*/        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] })
/*120232*/      /*Scope*/ 30, /*->120263*/
/*120233*/        OPC_CheckChild0Type, MVT::f64,
/*120235*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*120237*/        OPC_EmitInteger, MVT::i32, 14, 
/*120240*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120243*/        OPC_EmitNode1, TARGET_VAL(ARM::VCVTBDH), 0,
                      MVT::f32, 3/*#Ops*/, 0, 1, 2,  // Results = #3
/*120252*/        OPC_EmitInteger, MVT::i32, ARM::HPRRegClassID,
/*120255*/        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] })
/*120263*/      0, /*End of Scope*/
/*120264*/    0, // EndSwitchType
/*120265*/  /*SwitchOpcode*/ 112, TARGET_VAL(ISD::FTRUNC),// ->120380
/*120268*/    OPC_RecordChild0, // #0 = $Sm
/*120269*/    OPC_SwitchType /*5 cases */, 17, MVT::f16,// ->120289
/*120272*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*120274*/      OPC_EmitInteger, MVT::i32, 14, 
/*120277*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120280*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTZH), 0,
                    MVT::f16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ftrunc:{ *:[f16] } HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VRINTZH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
/*120289*/    /*SwitchType*/ 17, MVT::f32,// ->120308
/*120291*/      OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/*120293*/      OPC_EmitInteger, MVT::i32, 14, 
/*120296*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120299*/      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)
/*120308*/    /*SwitchType*/ 17, MVT::f64,// ->120327
/*120310*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*120312*/      OPC_EmitInteger, MVT::i32, 14, 
/*120315*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120318*/      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)
/*120327*/    /*SwitchType*/ 24, MVT::v4f32,// ->120353
/*120329*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*120331*/      OPC_EmitInteger, MVT::i32, 0, 
/*120334*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120337*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*120343*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRINTf32Z), 0,
                    MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ftrunc:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1) - Complexity = 3
                // Dst: (MVE_VRINTf32Z:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1)
/*120353*/    /*SwitchType*/ 24, MVT::v8f16,// ->120379
/*120355*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*120357*/      OPC_EmitInteger, MVT::i32, 0, 
/*120360*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120363*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*120369*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRINTf16Z), 0,
                    MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ftrunc:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1) - Complexity = 3
                // Dst: (MVE_VRINTf16Z:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1)
/*120379*/    0, // EndSwitchType
/*120380*/  /*SwitchOpcode*/ 60, TARGET_VAL(ISD::FNEARBYINT),// ->120443
/*120383*/    OPC_RecordChild0, // #0 = $Sm
/*120384*/    OPC_SwitchType /*3 cases */, 17, MVT::f16,// ->120404
/*120387*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*120389*/      OPC_EmitInteger, MVT::i32, 14, 
/*120392*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120395*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTRH), 0,
                    MVT::f16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (fnearbyint:{ *:[f16] } HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VRINTRH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
/*120404*/    /*SwitchType*/ 17, MVT::f32,// ->120423
/*120406*/      OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/*120408*/      OPC_EmitInteger, MVT::i32, 14, 
/*120411*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120414*/      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)
/*120423*/    /*SwitchType*/ 17, MVT::f64,// ->120442
/*120425*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*120427*/      OPC_EmitInteger, MVT::i32, 14, 
/*120430*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120433*/      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)
/*120442*/    0, // EndSwitchType
/*120443*/  /*SwitchOpcode*/ 112, TARGET_VAL(ISD::FRINT),// ->120558
/*120446*/    OPC_RecordChild0, // #0 = $Sm
/*120447*/    OPC_SwitchType /*5 cases */, 17, MVT::f16,// ->120467
/*120450*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*120452*/      OPC_EmitInteger, MVT::i32, 14, 
/*120455*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120458*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTXH), 0,
                    MVT::f16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (frint:{ *:[f16] } HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VRINTXH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
/*120467*/    /*SwitchType*/ 17, MVT::f32,// ->120486
/*120469*/      OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/*120471*/      OPC_EmitInteger, MVT::i32, 14, 
/*120474*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120477*/      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)
/*120486*/    /*SwitchType*/ 17, MVT::f64,// ->120505
/*120488*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*120490*/      OPC_EmitInteger, MVT::i32, 14, 
/*120493*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120496*/      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)
/*120505*/    /*SwitchType*/ 24, MVT::v4f32,// ->120531
/*120507*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*120509*/      OPC_EmitInteger, MVT::i32, 0, 
/*120512*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120515*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*120521*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRINTf32X), 0,
                    MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (frint:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1) - Complexity = 3
                // Dst: (MVE_VRINTf32X:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1)
/*120531*/    /*SwitchType*/ 24, MVT::v8f16,// ->120557
/*120533*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*120535*/      OPC_EmitInteger, MVT::i32, 0, 
/*120538*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120541*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*120547*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRINTf16X), 0,
                    MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (frint:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1) - Complexity = 3
                // Dst: (MVE_VRINTf16X:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1)
/*120557*/    0, // EndSwitchType
/*120558*/  /*SwitchOpcode*/ 88, TARGET_VAL(ISD::FROUND),// ->120649
/*120561*/    OPC_RecordChild0, // #0 = $Sm
/*120562*/    OPC_SwitchType /*5 cases */, 9, MVT::f16,// ->120574
/*120565*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*120567*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTAH), 0,
                    MVT::f16, 1/*#Ops*/, 0, 
                // Src: (fround:{ *:[f16] } HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VRINTAH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
/*120574*/    /*SwitchType*/ 9, MVT::f32,// ->120585
/*120576*/      OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/*120578*/      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)
/*120585*/    /*SwitchType*/ 9, MVT::f64,// ->120596
/*120587*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*120589*/      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)
/*120596*/    /*SwitchType*/ 24, MVT::v4f32,// ->120622
/*120598*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*120600*/      OPC_EmitInteger, MVT::i32, 0, 
/*120603*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120606*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*120612*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRINTf32A), 0,
                    MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fround:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1) - Complexity = 3
                // Dst: (MVE_VRINTf32A:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1)
/*120622*/    /*SwitchType*/ 24, MVT::v8f16,// ->120648
/*120624*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*120626*/      OPC_EmitInteger, MVT::i32, 0, 
/*120629*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120632*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*120638*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRINTf16A), 0,
                    MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fround:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1) - Complexity = 3
                // Dst: (MVE_VRINTf16A:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1)
/*120648*/    0, // EndSwitchType
/*120649*/  /*SwitchOpcode*/ 88, TARGET_VAL(ISD::FCEIL),// ->120740
/*120652*/    OPC_RecordChild0, // #0 = $Sm
/*120653*/    OPC_SwitchType /*5 cases */, 9, MVT::f16,// ->120665
/*120656*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*120658*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTPH), 0,
                    MVT::f16, 1/*#Ops*/, 0, 
                // Src: (fceil:{ *:[f16] } HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VRINTPH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
/*120665*/    /*SwitchType*/ 9, MVT::f32,// ->120676
/*120667*/      OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/*120669*/      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)
/*120676*/    /*SwitchType*/ 9, MVT::f64,// ->120687
/*120678*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*120680*/      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)
/*120687*/    /*SwitchType*/ 24, MVT::v4f32,// ->120713
/*120689*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*120691*/      OPC_EmitInteger, MVT::i32, 0, 
/*120694*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120697*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*120703*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRINTf32P), 0,
                    MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fceil:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1) - Complexity = 3
                // Dst: (MVE_VRINTf32P:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1)
/*120713*/    /*SwitchType*/ 24, MVT::v8f16,// ->120739
/*120715*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*120717*/      OPC_EmitInteger, MVT::i32, 0, 
/*120720*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120723*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*120729*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRINTf16P), 0,
                    MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fceil:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1) - Complexity = 3
                // Dst: (MVE_VRINTf16P:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1)
/*120739*/    0, // EndSwitchType
/*120740*/  /*SwitchOpcode*/ 88, TARGET_VAL(ISD::FFLOOR),// ->120831
/*120743*/    OPC_RecordChild0, // #0 = $Sm
/*120744*/    OPC_SwitchType /*5 cases */, 9, MVT::f16,// ->120756
/*120747*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*120749*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRINTMH), 0,
                    MVT::f16, 1/*#Ops*/, 0, 
                // Src: (ffloor:{ *:[f16] } HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VRINTMH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
/*120756*/    /*SwitchType*/ 9, MVT::f32,// ->120767
/*120758*/      OPC_CheckPatternPredicate, 24, // (Subtarget->hasFPARMv8Base())
/*120760*/      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)
/*120767*/    /*SwitchType*/ 9, MVT::f64,// ->120778
/*120769*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*120771*/      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)
/*120778*/    /*SwitchType*/ 24, MVT::v4f32,// ->120804
/*120780*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*120782*/      OPC_EmitInteger, MVT::i32, 0, 
/*120785*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120788*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*120794*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRINTf32M), 0,
                    MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ffloor:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1) - Complexity = 3
                // Dst: (MVE_VRINTf32M:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$val1)
/*120804*/    /*SwitchType*/ 24, MVT::v8f16,// ->120830
/*120806*/      OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*120808*/      OPC_EmitInteger, MVT::i32, 0, 
/*120811*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120814*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*120820*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VRINTf16M), 0,
                    MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (ffloor:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1) - Complexity = 3
                // Dst: (MVE_VRINTf16M:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$val1)
/*120830*/    0, // EndSwitchType
/*120831*/  /*SwitchOpcode*/ 60, TARGET_VAL(ISD::FSQRT),// ->120894
/*120834*/    OPC_RecordChild0, // #0 = $Dm
/*120835*/    OPC_SwitchType /*3 cases */, 17, MVT::f64,// ->120855
/*120838*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base())
/*120840*/      OPC_EmitInteger, MVT::i32, 14, 
/*120843*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120846*/      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)
/*120855*/    /*SwitchType*/ 17, MVT::f32,// ->120874
/*120857*/      OPC_CheckPatternPredicate, 42, // (Subtarget->hasVFP2Base())
/*120859*/      OPC_EmitInteger, MVT::i32, 14, 
/*120862*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120865*/      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)
/*120874*/    /*SwitchType*/ 17, MVT::f16,// ->120893
/*120876*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*120878*/      OPC_EmitInteger, MVT::i32, 14, 
/*120881*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120884*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSQRTH), 0,
                    MVT::f16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (fsqrt:{ *:[f16] } HPR:{ *:[f16] }:$Sm) - Complexity = 3
                // Dst: (VSQRTH:{ *:[f16] } HPR:{ *:[f16] }:$Sm)
/*120893*/    0, // EndSwitchType
/*120894*/  /*SwitchOpcode*/ 51, TARGET_VAL(ARMISD::VMOVSR),// ->120948
/*120897*/    OPC_RecordChild0, // #0 = $Rt
/*120898*/    OPC_Scope, 17, /*->120917*/ // 2 children in Scope
/*120900*/      OPC_CheckPatternPredicate, 122, // (Subtarget->hasVFP2Base()) && (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP())
/*120902*/      OPC_EmitInteger, MVT::i32, 14, 
/*120905*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120908*/      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)
/*120917*/    /*Scope*/ 29, /*->120947*/
/*120918*/      OPC_CheckPatternPredicate, 95, // (!Subtarget->preferVMOVSR() &&Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasNEON())
/*120920*/      OPC_EmitInteger, MVT::i32, 14, 
/*120923*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120926*/      OPC_EmitNode1, TARGET_VAL(ARM::VMOVDRR), 0,
                    MVT::f64, 4/*#Ops*/, 0, 0, 1, 2,  // Results = #3
/*120936*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*120939*/      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] })
/*120947*/    0, /*End of Scope*/
/*120948*/  /*SwitchOpcode*/ 20, TARGET_VAL(ARMISD::VMOVDRR),// ->120971
/*120951*/    OPC_RecordChild0, // #0 = $Rt
/*120952*/    OPC_RecordChild1, // #1 = $Rt2
/*120953*/    OPC_CheckPatternPredicate, 36, // (Subtarget->hasFPRegs())
/*120955*/    OPC_EmitInteger, MVT::i32, 14, 
/*120958*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120961*/    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)
/*120971*/  /*SwitchOpcode*/ 20, TARGET_VAL(ARMISD::VMOVhr),// ->120994
/*120974*/    OPC_RecordChild0, // #0 = $Rt
/*120975*/    OPC_CheckType, MVT::f16,
/*120977*/    OPC_CheckPatternPredicate, 39, // (Subtarget->hasFPRegs16())
/*120979*/    OPC_EmitInteger, MVT::i32, 14, 
/*120982*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*120985*/    OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVHR), 0,
                  MVT::f16, 3/*#Ops*/, 0, 1, 2, 
              // Src: (arm_vmovhr:{ *:[f16] } rGPR:{ *:[i32] }:$Rt) - Complexity = 3
              // Dst: (VMOVHR:{ *:[f16] } rGPR:{ *:[i32] }:$Rt)
/*120994*/  /*SwitchOpcode*/ 63, TARGET_VAL(ISD::FP16_TO_FP),// ->121060
/*120997*/    OPC_RecordChild0, // #0 = $a
/*120998*/    OPC_SwitchType /*2 cases */, 28, MVT::f32,// ->121029
/*121001*/      OPC_CheckPatternPredicate, 96, // (Subtarget->hasFP16())
/*121003*/      OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/*121006*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*121014*/      OPC_EmitInteger, MVT::i32, 14, 
/*121017*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121020*/      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] }))
/*121029*/    /*SwitchType*/ 28, MVT::f64,// ->121059
/*121031*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base())
/*121033*/      OPC_EmitInteger, MVT::i32, ARM::SPRRegClassID,
/*121036*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*121044*/      OPC_EmitInteger, MVT::i32, 14, 
/*121047*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121050*/      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] }))
/*121059*/    0, // EndSwitchType
/*121060*/  /*SwitchOpcode*/ 28|128,2/*284*/, TARGET_VAL(ISD::FMAXIMUM),// ->121348
/*121064*/    OPC_RecordChild0, // #0 = $a
/*121065*/    OPC_RecordChild1, // #1 = $b
/*121066*/    OPC_SwitchType /*6 cases */, 98, MVT::f16,// ->121167
/*121069*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*121071*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4f16, 0/*#Ops*/,  // Results = #2
/*121077*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*121080*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f16, 2/*#Ops*/, 2, 3,  // Results = #4
/*121088*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*121091*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4f16, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*121100*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4f16, 0/*#Ops*/,  // Results = #7
/*121106*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*121109*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f16, 2/*#Ops*/, 7, 8,  // Results = #9
/*121117*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*121120*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4f16, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*121129*/      OPC_EmitInteger, MVT::i32, 14, 
/*121132*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121135*/      OPC_EmitNode1, TARGET_VAL(ARM::VMAXhd), 0,
                    MVT::f64, 4/*#Ops*/, 6, 11, 12, 13,  // Results = #14
/*121145*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*121148*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f16, 2/*#Ops*/, 14, 15,  // Results = #16
/*121156*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*121159*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f16, 2/*#Ops*/, 16, 17, 
                // Src: (fmaximum:{ *:[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] })
/*121167*/    /*SwitchType*/ 98, MVT::f32,// ->121267
/*121169*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*121171*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2f32, 0/*#Ops*/,  // Results = #2
/*121177*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*121180*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*121188*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*121191*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v2f32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*121200*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2f32, 0/*#Ops*/,  // Results = #7
/*121206*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*121209*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2f32, 2/*#Ops*/, 7, 8,  // Results = #9
/*121217*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*121220*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v2f32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*121229*/      OPC_EmitInteger, MVT::i32, 14, 
/*121232*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121235*/      OPC_EmitNode1, TARGET_VAL(ARM::VMAXfd), 0,
                    MVT::f64, 4/*#Ops*/, 6, 11, 12, 13,  // Results = #14
/*121245*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*121248*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2f32, 2/*#Ops*/, 14, 15,  // Results = #16
/*121256*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*121259*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f32, 2/*#Ops*/, 16, 17, 
                // Src: (fmaximum:{ *:[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] })
/*121267*/    /*SwitchType*/ 18, MVT::v2f32,// ->121287
/*121269*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*121271*/      OPC_EmitInteger, MVT::i32, 14, 
/*121274*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121277*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXfd), 0,
                    MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fmaximum:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                // Dst: (VMAXfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/*121287*/    /*SwitchType*/ 18, MVT::v4f32,// ->121307
/*121289*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*121291*/      OPC_EmitInteger, MVT::i32, 14, 
/*121294*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121297*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXfq), 0,
                    MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fmaximum:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                // Dst: (VMAXfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/*121307*/    /*SwitchType*/ 18, MVT::v4f16,// ->121327
/*121309*/      OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*121311*/      OPC_EmitInteger, MVT::i32, 14, 
/*121314*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121317*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXhd), 0,
                    MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fmaximum:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                // Dst: (VMAXhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/*121327*/    /*SwitchType*/ 18, MVT::v8f16,// ->121347
/*121329*/      OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*121331*/      OPC_EmitInteger, MVT::i32, 14, 
/*121334*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121337*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMAXhq), 0,
                    MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fmaximum:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                // Dst: (VMAXhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/*121347*/    0, // EndSwitchType
/*121348*/  /*SwitchOpcode*/ 28|128,2/*284*/, TARGET_VAL(ISD::FMINIMUM),// ->121636
/*121352*/    OPC_RecordChild0, // #0 = $a
/*121353*/    OPC_RecordChild1, // #1 = $b
/*121354*/    OPC_SwitchType /*6 cases */, 98, MVT::f16,// ->121455
/*121357*/      OPC_CheckPatternPredicate, 23, // (Subtarget->hasFullFP16())
/*121359*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4f16, 0/*#Ops*/,  // Results = #2
/*121365*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*121368*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f16, 2/*#Ops*/, 2, 3,  // Results = #4
/*121376*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*121379*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4f16, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*121388*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4f16, 0/*#Ops*/,  // Results = #7
/*121394*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*121397*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f16, 2/*#Ops*/, 7, 8,  // Results = #9
/*121405*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*121408*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v4f16, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*121417*/      OPC_EmitInteger, MVT::i32, 14, 
/*121420*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121423*/      OPC_EmitNode1, TARGET_VAL(ARM::VMINhd), 0,
                    MVT::f64, 4/*#Ops*/, 6, 11, 12, 13,  // Results = #14
/*121433*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*121436*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f16, 2/*#Ops*/, 14, 15,  // Results = #16
/*121444*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*121447*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f16, 2/*#Ops*/, 16, 17, 
                // Src: (fminimum:{ *:[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] })
/*121455*/    /*SwitchType*/ 98, MVT::f32,// ->121555
/*121457*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*121459*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2f32, 0/*#Ops*/,  // Results = #2
/*121465*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*121468*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*121476*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*121479*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v2f32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*121488*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2f32, 0/*#Ops*/,  // Results = #7
/*121494*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*121497*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2f32, 2/*#Ops*/, 7, 8,  // Results = #9
/*121505*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*121508*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v2f32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*121517*/      OPC_EmitInteger, MVT::i32, 14, 
/*121520*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121523*/      OPC_EmitNode1, TARGET_VAL(ARM::VMINfd), 0,
                    MVT::f64, 4/*#Ops*/, 6, 11, 12, 13,  // Results = #14
/*121533*/      OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*121536*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2f32, 2/*#Ops*/, 14, 15,  // Results = #16
/*121544*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*121547*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::f32, 2/*#Ops*/, 16, 17, 
                // Src: (fminimum:{ *:[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] })
/*121555*/    /*SwitchType*/ 18, MVT::v2f32,// ->121575
/*121557*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*121559*/      OPC_EmitInteger, MVT::i32, 14, 
/*121562*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121565*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINfd), 0,
                    MVT::v2f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fminimum:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                // Dst: (VMINfd:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/*121575*/    /*SwitchType*/ 18, MVT::v4f32,// ->121595
/*121577*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*121579*/      OPC_EmitInteger, MVT::i32, 14, 
/*121582*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121585*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINfq), 0,
                    MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fminimum:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                // Dst: (VMINfq:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/*121595*/    /*SwitchType*/ 18, MVT::v4f16,// ->121615
/*121597*/      OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*121599*/      OPC_EmitInteger, MVT::i32, 14, 
/*121602*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121605*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINhd), 0,
                    MVT::v4f16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fminimum:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                // Dst: (VMINhd:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/*121615*/    /*SwitchType*/ 18, MVT::v8f16,// ->121635
/*121617*/      OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*121619*/      OPC_EmitInteger, MVT::i32, 14, 
/*121622*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121625*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMINhq), 0,
                    MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (fminimum:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                // Dst: (VMINhq:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/*121635*/    0, // EndSwitchType
/*121636*/  /*SwitchOpcode*/ 22|128,2/*278*/, TARGET_VAL(ARMISD::VMOVIMM),// ->121918
/*121640*/    OPC_Scope, 29, /*->121671*/ // 2 children in Scope
/*121642*/      OPC_MoveChild0,
/*121643*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*121646*/      OPC_MoveParent,
/*121647*/      OPC_CheckPredicate, 87, // Predicate_NEONimmAllZerosV
/*121649*/      OPC_SwitchType /*2 cases */, 8, MVT::v2i32,// ->121660
/*121652*/        OPC_CheckPatternPredicate, 123, // (Subtarget->hasZeroCycleZeroing())
/*121654*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVD0), 0,
                      MVT::v2i32, 0/*#Ops*/, 
                  // Src: (ARMvmovImm:{ *:[v2i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>> - Complexity = 57
                  // Dst: (VMOVD0:{ *:[v2i32] })
/*121660*/      /*SwitchType*/ 8, MVT::v4i32,// ->121670
/*121662*/        OPC_CheckPatternPredicate, 123, // (Subtarget->hasZeroCycleZeroing())
/*121664*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVQ0), 0,
                      MVT::v4i32, 0/*#Ops*/, 
                  // Src: (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>> - Complexity = 57
                  // Dst: (VMOVQ0:{ *:[v4i32] })
/*121670*/      0, // EndSwitchType
/*121671*/    /*Scope*/ 116|128,1/*244*/, /*->121917*/
/*121673*/      OPC_RecordChild0, // #0 = $SIMM
/*121674*/      OPC_MoveChild0,
/*121675*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*121678*/      OPC_MoveParent,
/*121679*/      OPC_SwitchType /*8 cases */, 17, MVT::v8i8,// ->121699
/*121682*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*121684*/        OPC_EmitInteger, MVT::i32, 14, 
/*121687*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121690*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvmovImm:{ *:[v8i8] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMOVv8i8:{ *:[v8i8] } (timm:{ *:[i32] }):$SIMM)
/*121699*/      /*SwitchType*/ 45, MVT::v16i8,// ->121746
/*121701*/        OPC_Scope, 17, /*->121720*/ // 2 children in Scope
/*121703*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*121705*/          OPC_EmitInteger, MVT::i32, 14, 
/*121708*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121711*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv16i8), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                    // Dst: (VMOVv16i8:{ *:[v16i8] } (timm:{ *:[i32] }):$SIMM)
/*121720*/        /*Scope*/ 24, /*->121745*/
/*121721*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*121723*/          OPC_EmitInteger, MVT::i32, 0, 
/*121726*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121729*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*121735*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVimmi8), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }):$simm) - Complexity = 6
                    // Dst: (MVE_VMOVimmi8:{ *:[v16i8] } nImmSplatI8:{ *:[i32] }:$simm)
/*121745*/        0, /*End of Scope*/
/*121746*/      /*SwitchType*/ 17, MVT::v4i16,// ->121765
/*121748*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*121750*/        OPC_EmitInteger, MVT::i32, 14, 
/*121753*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121756*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvmovImm:{ *:[v4i16] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMOVv4i16:{ *:[v4i16] } (timm:{ *:[i32] }):$SIMM)
/*121765*/      /*SwitchType*/ 45, MVT::v8i16,// ->121812
/*121767*/        OPC_Scope, 17, /*->121786*/ // 2 children in Scope
/*121769*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*121771*/          OPC_EmitInteger, MVT::i32, 14, 
/*121774*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121777*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvmovImm:{ *:[v8i16] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                    // Dst: (VMOVv8i16:{ *:[v8i16] } (timm:{ *:[i32] }):$SIMM)
/*121786*/        /*Scope*/ 24, /*->121811*/
/*121787*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*121789*/          OPC_EmitInteger, MVT::i32, 0, 
/*121792*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121795*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*121801*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVimmi16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvmovImm:{ *:[v8i16] } (timm:{ *:[i32] }):$simm) - Complexity = 6
                    // Dst: (MVE_VMOVimmi16:{ *:[v8i16] } nImmSplatI16:{ *:[i32] }:$simm)
/*121811*/        0, /*End of Scope*/
/*121812*/      /*SwitchType*/ 17, MVT::v2i32,// ->121831
/*121814*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*121816*/        OPC_EmitInteger, MVT::i32, 14, 
/*121819*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121822*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvmovImm:{ *:[v2i32] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMOVv2i32:{ *:[v2i32] } (timm:{ *:[i32] }):$SIMM)
/*121831*/      /*SwitchType*/ 45, MVT::v4i32,// ->121878
/*121833*/        OPC_Scope, 17, /*->121852*/ // 2 children in Scope
/*121835*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*121837*/          OPC_EmitInteger, MVT::i32, 14, 
/*121840*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121843*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                    // Dst: (VMOVv4i32:{ *:[v4i32] } (timm:{ *:[i32] }):$SIMM)
/*121852*/        /*Scope*/ 24, /*->121877*/
/*121853*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*121855*/          OPC_EmitInteger, MVT::i32, 0, 
/*121858*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121861*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*121867*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVimmi32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }):$simm) - Complexity = 6
                    // Dst: (MVE_VMOVimmi32:{ *:[v4i32] } nImmVMOVI32:{ *:[i32] }:$simm)
/*121877*/        0, /*End of Scope*/
/*121878*/      /*SwitchType*/ 17, MVT::v1i64,// ->121897
/*121880*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*121882*/        OPC_EmitInteger, MVT::i32, 14, 
/*121885*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121888*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv1i64), 0,
                      MVT::v1i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvmovImm:{ *:[v1i64] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMOVv1i64:{ *:[v1i64] } (timm:{ *:[i32] }):$SIMM)
/*121897*/      /*SwitchType*/ 17, MVT::v2i64,// ->121916
/*121899*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*121901*/        OPC_EmitInteger, MVT::i32, 14, 
/*121904*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*121907*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv2i64), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvmovImm:{ *:[v2i64] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMOVv2i64:{ *:[v2i64] } (timm:{ *:[i32] }):$SIMM)
/*121916*/      0, // EndSwitchType
/*121917*/    0, /*End of Scope*/
/*121918*/  /*SwitchOpcode*/ 46|128,7/*942*/, TARGET_VAL(ISD::VSELECT),// ->122864
/*121922*/    OPC_Scope, 114|128,3/*498*/, /*->122423*/ // 2 children in Scope
/*121925*/      OPC_MoveChild0,
/*121926*/      OPC_SwitchOpcode /*2 cases */, 16|128,2/*272*/, TARGET_VAL(ARMISD::VCMPZ),// ->122203
/*121931*/        OPC_RecordChild0, // #0 = $reg
/*121932*/        OPC_SwitchType /*3 cases */, 90, MVT::v16i1,// ->122025
/*121935*/          OPC_CheckChild0Type, MVT::v16i8,
/*121937*/          OPC_CheckChild1Integer, 12, 
/*121939*/          OPC_CheckChild1Type, MVT::i32,
/*121941*/          OPC_MoveParent,
/*121942*/          OPC_CheckChild1Same, 0,
/*121944*/          OPC_MoveChild2,
/*121945*/          OPC_CheckOpcode, TARGET_VAL(ISD::VSELECT),
/*121948*/          OPC_MoveChild0,
/*121949*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VCMP),
/*121952*/          OPC_CheckChild0Same, 0,
/*121954*/          OPC_MoveChild1,
/*121955*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*121958*/          OPC_CheckChild0Integer, 0|128,29/*3712*/, 
/*121961*/          OPC_MoveParent,
/*121962*/          OPC_CheckChild2Integer, 0, 
/*121964*/          OPC_CheckChild2Type, MVT::i32,
/*121966*/          OPC_CheckType, MVT::v16i1,
/*121968*/          OPC_MoveParent,
/*121969*/          OPC_MoveChild1,
/*121970*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*121973*/          OPC_CheckChild0Integer, 127|128,28/*3711*/, 
/*121976*/          OPC_MoveParent,
/*121977*/          OPC_MoveChild2,
/*121978*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/*121981*/          OPC_MoveChild0,
/*121982*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*121985*/          OPC_MoveChild0,
/*121986*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*121989*/          OPC_CheckChild0Integer, 0, 
/*121991*/          OPC_CheckType, MVT::v4i32,
/*121993*/          OPC_MoveParent,
/*121994*/          OPC_MoveParent,
/*121995*/          OPC_CheckChild1Same, 0,
/*121997*/          OPC_MoveParent,
/*121998*/          OPC_MoveParent,
/*121999*/          OPC_CheckType, MVT::v16i8,
/*122001*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122003*/          OPC_EmitInteger, MVT::i32, 0, 
/*122006*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122009*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*122015*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQABSs8), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (vselect:{ *:[v16i8] } (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$reg, 12:{ *:[i32] }), MQPR:{ *:[v16i8] }:$reg, (vselect:{ *:[v16i8] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$reg, (ARMvmovImm:{ *:[v16i8] } 3712:{ *:[i32] }), 0:{ *:[i32] }), (ARMvmovImm:{ *:[v16i8] } 3711:{ *:[i32] }), (sub:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ARMvmovImm:{ *:[v4i32] } 0:{ *:[i32] })), MQPR:{ *:[v16i8] }:$reg))) - Complexity = 52
                    // Dst: (MVE_VQABSs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$reg)
/*122025*/        /*SwitchType*/ 90, MVT::v8i1,// ->122117
/*122027*/          OPC_CheckChild0Type, MVT::v8i16,
/*122029*/          OPC_CheckChild1Integer, 12, 
/*122031*/          OPC_CheckChild1Type, MVT::i32,
/*122033*/          OPC_MoveParent,
/*122034*/          OPC_CheckChild1Same, 0,
/*122036*/          OPC_MoveChild2,
/*122037*/          OPC_CheckOpcode, TARGET_VAL(ISD::VSELECT),
/*122040*/          OPC_MoveChild0,
/*122041*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VCMP),
/*122044*/          OPC_CheckChild0Same, 0,
/*122046*/          OPC_MoveChild1,
/*122047*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*122050*/          OPC_CheckChild0Integer, 0|128,21/*2688*/, 
/*122053*/          OPC_MoveParent,
/*122054*/          OPC_CheckChild2Integer, 0, 
/*122056*/          OPC_CheckChild2Type, MVT::i32,
/*122058*/          OPC_CheckType, MVT::v8i1,
/*122060*/          OPC_MoveParent,
/*122061*/          OPC_MoveChild1,
/*122062*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMVNIMM),
/*122065*/          OPC_CheckChild0Integer, 0|128,21/*2688*/, 
/*122068*/          OPC_MoveParent,
/*122069*/          OPC_MoveChild2,
/*122070*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/*122073*/          OPC_MoveChild0,
/*122074*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*122077*/          OPC_MoveChild0,
/*122078*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*122081*/          OPC_CheckChild0Integer, 0, 
/*122083*/          OPC_CheckType, MVT::v4i32,
/*122085*/          OPC_MoveParent,
/*122086*/          OPC_MoveParent,
/*122087*/          OPC_CheckChild1Same, 0,
/*122089*/          OPC_MoveParent,
/*122090*/          OPC_MoveParent,
/*122091*/          OPC_CheckType, MVT::v8i16,
/*122093*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122095*/          OPC_EmitInteger, MVT::i32, 0, 
/*122098*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122101*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*122107*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQABSs16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (vselect:{ *:[v8i16] } (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$reg, 12:{ *:[i32] }), MQPR:{ *:[v8i16] }:$reg, (vselect:{ *:[v8i16] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$reg, (ARMvmovImm:{ *:[v8i16] } 2688:{ *:[i32] }), 0:{ *:[i32] }), (ARMvmvnImm:{ *:[v8i16] } 2688:{ *:[i32] }), (sub:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ARMvmovImm:{ *:[v4i32] } 0:{ *:[i32] })), MQPR:{ *:[v8i16] }:$reg))) - Complexity = 52
                    // Dst: (MVE_VQABSs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$reg)
/*122117*/        /*SwitchType*/ 83, MVT::v4i1,// ->122202
/*122119*/          OPC_CheckChild0Type, MVT::v4i32,
/*122121*/          OPC_CheckChild1Integer, 12, 
/*122123*/          OPC_CheckChild1Type, MVT::i32,
/*122125*/          OPC_MoveParent,
/*122126*/          OPC_CheckChild1Same, 0,
/*122128*/          OPC_MoveChild2,
/*122129*/          OPC_CheckOpcode, TARGET_VAL(ISD::VSELECT),
/*122132*/          OPC_MoveChild0,
/*122133*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VCMP),
/*122136*/          OPC_CheckChild0Same, 0,
/*122138*/          OPC_MoveChild1,
/*122139*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*122142*/          OPC_CheckChild0Integer, 0|128,13/*1664*/, 
/*122145*/          OPC_MoveParent,
/*122146*/          OPC_CheckChild2Integer, 0, 
/*122148*/          OPC_CheckChild2Type, MVT::i32,
/*122150*/          OPC_CheckType, MVT::v4i1,
/*122152*/          OPC_MoveParent,
/*122153*/          OPC_MoveChild1,
/*122154*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMVNIMM),
/*122157*/          OPC_CheckChild0Integer, 0|128,13/*1664*/, 
/*122160*/          OPC_MoveParent,
/*122161*/          OPC_MoveChild2,
/*122162*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/*122165*/          OPC_MoveChild0,
/*122166*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*122169*/          OPC_CheckChild0Integer, 0, 
/*122171*/          OPC_MoveParent,
/*122172*/          OPC_CheckChild1Same, 0,
/*122174*/          OPC_MoveParent,
/*122175*/          OPC_MoveParent,
/*122176*/          OPC_CheckType, MVT::v4i32,
/*122178*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122180*/          OPC_EmitInteger, MVT::i32, 0, 
/*122183*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122186*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*122192*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQABSs32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (vselect:{ *:[v4i32] } (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$reg, 12:{ *:[i32] }), MQPR:{ *:[v4i32] }:$reg, (vselect:{ *:[v4i32] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$reg, (ARMvmovImm:{ *:[v4i32] } 1664:{ *:[i32] }), 0:{ *:[i32] }), (ARMvmvnImm:{ *:[v4i32] } 1664:{ *:[i32] }), (sub:{ *:[v4i32] } (ARMvmovImm:{ *:[v4i32] } 0:{ *:[i32] }), MQPR:{ *:[v4i32] }:$reg))) - Complexity = 49
                    // Dst: (MVE_VQABSs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$reg)
/*122202*/        0, // EndSwitchType
/*122203*/      /*SwitchOpcode*/ 87|128,1/*215*/, TARGET_VAL(ARMISD::VCMP),// ->122422
/*122207*/        OPC_RecordChild0, // #0 = $reg
/*122208*/        OPC_Scope, 72, /*->122282*/ // 3 children in Scope
/*122210*/          OPC_CheckChild0Type, MVT::v16i8,
/*122212*/          OPC_MoveChild1,
/*122213*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*122216*/          OPC_CheckChild0Integer, 0|128,29/*3712*/, 
/*122219*/          OPC_MoveParent,
/*122220*/          OPC_CheckChild2Integer, 0, 
/*122222*/          OPC_CheckChild2Type, MVT::i32,
/*122224*/          OPC_CheckType, MVT::v16i1,
/*122226*/          OPC_MoveParent,
/*122227*/          OPC_MoveChild1,
/*122228*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*122231*/          OPC_CheckChild0Integer, 127|128,28/*3711*/, 
/*122234*/          OPC_MoveParent,
/*122235*/          OPC_MoveChild2,
/*122236*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/*122239*/          OPC_MoveChild0,
/*122240*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*122243*/          OPC_MoveChild0,
/*122244*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*122247*/          OPC_CheckChild0Integer, 0, 
/*122249*/          OPC_CheckType, MVT::v4i32,
/*122251*/          OPC_MoveParent,
/*122252*/          OPC_MoveParent,
/*122253*/          OPC_CheckChild1Same, 0,
/*122255*/          OPC_MoveParent,
/*122256*/          OPC_CheckType, MVT::v16i8,
/*122258*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122260*/          OPC_EmitInteger, MVT::i32, 0, 
/*122263*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122266*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*122272*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQNEGs8), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (vselect:{ *:[v16i8] } (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$reg, (ARMvmovImm:{ *:[v16i8] } 3712:{ *:[i32] }), 0:{ *:[i32] }), (ARMvmovImm:{ *:[v16i8] } 3711:{ *:[i32] }), (sub:{ *:[v16i8] } (bitconvert:{ *:[v16i8] } (ARMvmovImm:{ *:[v4i32] } 0:{ *:[i32] })), MQPR:{ *:[v16i8] }:$reg)) - Complexity = 41
                    // Dst: (MVE_VQNEGs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$reg)
/*122282*/        /*Scope*/ 72, /*->122355*/
/*122283*/          OPC_CheckChild0Type, MVT::v8i16,
/*122285*/          OPC_MoveChild1,
/*122286*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*122289*/          OPC_CheckChild0Integer, 0|128,21/*2688*/, 
/*122292*/          OPC_MoveParent,
/*122293*/          OPC_CheckChild2Integer, 0, 
/*122295*/          OPC_CheckChild2Type, MVT::i32,
/*122297*/          OPC_CheckType, MVT::v8i1,
/*122299*/          OPC_MoveParent,
/*122300*/          OPC_MoveChild1,
/*122301*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMVNIMM),
/*122304*/          OPC_CheckChild0Integer, 0|128,21/*2688*/, 
/*122307*/          OPC_MoveParent,
/*122308*/          OPC_MoveChild2,
/*122309*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/*122312*/          OPC_MoveChild0,
/*122313*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*122316*/          OPC_MoveChild0,
/*122317*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*122320*/          OPC_CheckChild0Integer, 0, 
/*122322*/          OPC_CheckType, MVT::v4i32,
/*122324*/          OPC_MoveParent,
/*122325*/          OPC_MoveParent,
/*122326*/          OPC_CheckChild1Same, 0,
/*122328*/          OPC_MoveParent,
/*122329*/          OPC_CheckType, MVT::v8i16,
/*122331*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122333*/          OPC_EmitInteger, MVT::i32, 0, 
/*122336*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122339*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*122345*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQNEGs16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (vselect:{ *:[v8i16] } (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$reg, (ARMvmovImm:{ *:[v8i16] } 2688:{ *:[i32] }), 0:{ *:[i32] }), (ARMvmvnImm:{ *:[v8i16] } 2688:{ *:[i32] }), (sub:{ *:[v8i16] } (bitconvert:{ *:[v8i16] } (ARMvmovImm:{ *:[v4i32] } 0:{ *:[i32] })), MQPR:{ *:[v8i16] }:$reg)) - Complexity = 41
                    // Dst: (MVE_VQNEGs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$reg)
/*122355*/        /*Scope*/ 65, /*->122421*/
/*122356*/          OPC_CheckChild0Type, MVT::v4i32,
/*122358*/          OPC_MoveChild1,
/*122359*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*122362*/          OPC_CheckChild0Integer, 0|128,13/*1664*/, 
/*122365*/          OPC_MoveParent,
/*122366*/          OPC_CheckChild2Integer, 0, 
/*122368*/          OPC_CheckChild2Type, MVT::i32,
/*122370*/          OPC_CheckType, MVT::v4i1,
/*122372*/          OPC_MoveParent,
/*122373*/          OPC_MoveChild1,
/*122374*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMVNIMM),
/*122377*/          OPC_CheckChild0Integer, 0|128,13/*1664*/, 
/*122380*/          OPC_MoveParent,
/*122381*/          OPC_MoveChild2,
/*122382*/          OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/*122385*/          OPC_MoveChild0,
/*122386*/          OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*122389*/          OPC_CheckChild0Integer, 0, 
/*122391*/          OPC_MoveParent,
/*122392*/          OPC_CheckChild1Same, 0,
/*122394*/          OPC_MoveParent,
/*122395*/          OPC_CheckType, MVT::v4i32,
/*122397*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122399*/          OPC_EmitInteger, MVT::i32, 0, 
/*122402*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122405*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*122411*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQNEGs32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (vselect:{ *:[v4i32] } (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$reg, (ARMvmovImm:{ *:[v4i32] } 1664:{ *:[i32] }), 0:{ *:[i32] }), (ARMvmvnImm:{ *:[v4i32] } 1664:{ *:[i32] }), (sub:{ *:[v4i32] } (ARMvmovImm:{ *:[v4i32] } 0:{ *:[i32] }), MQPR:{ *:[v4i32] }:$reg)) - Complexity = 38
                    // Dst: (MVE_VQNEGs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$reg)
/*122421*/        0, /*End of Scope*/
/*122422*/      0, // EndSwitchOpcode
/*122423*/    /*Scope*/ 54|128,3/*438*/, /*->122863*/
/*122425*/      OPC_RecordChild0, // #0 = $pred
/*122426*/      OPC_Scope, 21, /*->122449*/ // 6 children in Scope
/*122428*/        OPC_CheckChild0Type, MVT::v16i1,
/*122430*/        OPC_RecordChild1, // #1 = $v1
/*122431*/        OPC_RecordChild2, // #2 = $v2
/*122432*/        OPC_CheckType, MVT::v16i8,
/*122434*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122436*/        OPC_EmitInteger, MVT::i32, 0, 
/*122439*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                      MVT::v16i8, 4/*#Ops*/, 1, 2, 3, 0, 
                  // Src: (vselect:{ *:[v16i8] } VCCR:{ *:[v16i1] }:$pred, MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2) - Complexity = 3
                  // Dst: (MVE_VPSEL:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred)
/*122449*/      /*Scope*/ 40, /*->122490*/
/*122450*/        OPC_CheckChild0Type, MVT::v8i1,
/*122452*/        OPC_RecordChild1, // #1 = $v1
/*122453*/        OPC_RecordChild2, // #2 = $v2
/*122454*/        OPC_SwitchType /*2 cases */, 15, MVT::v8i16,// ->122472
/*122457*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122459*/          OPC_EmitInteger, MVT::i32, 0, 
/*122462*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                        MVT::v8i16, 4/*#Ops*/, 1, 2, 3, 0, 
                    // Src: (vselect:{ *:[v8i16] } VCCR:{ *:[v8i1] }:$pred, MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2) - Complexity = 3
                    // Dst: (MVE_VPSEL:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/*122472*/        /*SwitchType*/ 15, MVT::v8f16,// ->122489
/*122474*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122476*/          OPC_EmitInteger, MVT::i32, 0, 
/*122479*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                        MVT::v8f16, 4/*#Ops*/, 1, 2, 3, 0, 
                    // Src: (vselect:{ *:[v8f16] } VCCR:{ *:[v8i1] }:$pred, MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2) - Complexity = 3
                    // Dst: (MVE_VPSEL:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/*122489*/        0, // EndSwitchType
/*122490*/      /*Scope*/ 40, /*->122531*/
/*122491*/        OPC_CheckChild0Type, MVT::v4i1,
/*122493*/        OPC_RecordChild1, // #1 = $v1
/*122494*/        OPC_RecordChild2, // #2 = $v2
/*122495*/        OPC_SwitchType /*2 cases */, 15, MVT::v4i32,// ->122513
/*122498*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122500*/          OPC_EmitInteger, MVT::i32, 0, 
/*122503*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                        MVT::v4i32, 4/*#Ops*/, 1, 2, 3, 0, 
                    // Src: (vselect:{ *:[v4i32] } VCCR:{ *:[v4i1] }:$pred, MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2) - Complexity = 3
                    // Dst: (MVE_VPSEL:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*122513*/        /*SwitchType*/ 15, MVT::v4f32,// ->122530
/*122515*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122517*/          OPC_EmitInteger, MVT::i32, 0, 
/*122520*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                        MVT::v4f32, 4/*#Ops*/, 1, 2, 3, 0, 
                    // Src: (vselect:{ *:[v4f32] } VCCR:{ *:[v4i1] }:$pred, MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2) - Complexity = 3
                    // Dst: (MVE_VPSEL:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*122530*/        0, // EndSwitchType
/*122531*/      /*Scope*/ 66, /*->122598*/
/*122532*/        OPC_CheckChild0Type, MVT::v16i8,
/*122534*/        OPC_RecordChild1, // #1 = $v1
/*122535*/        OPC_RecordChild2, // #2 = $v2
/*122536*/        OPC_CheckType, MVT::v16i8,
/*122538*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122540*/        OPC_EmitInteger, MVT::i32, 0, 
/*122543*/        OPC_EmitInteger, MVT::i32, 0, 
/*122546*/        OPC_EmitInteger, MVT::i32, 0, 
/*122549*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122552*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #7
/*122558*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi8), 0,
                      MVT::v16i8, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/*122568*/        OPC_EmitInteger, MVT::i32, 1, 
/*122571*/        OPC_EmitInteger, MVT::i32, 0, 
/*122574*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122577*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VCMPi8), 0,
                      MVT::i32, 5/*#Ops*/, 0, 8, 9, 10, 11,  // Results = #12
/*122588*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                      MVT::v16i8, 4/*#Ops*/, 1, 2, 3, 12, 
                  // Src: (vselect:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$pred, MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2) - Complexity = 3
                  // Dst: (MVE_VPSEL:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 0:{ *:[i32] }, (MVE_VCMPi8:{ *:[i32] } MQPR:{ *:[v16i8] }:$pred, (MVE_VMOVimmi8:{ *:[v16i8] } 0:{ *:[i32] }), 1:{ *:[i32] }))
/*122598*/      /*Scope*/ 2|128,1/*130*/, /*->122730*/
/*122600*/        OPC_CheckChild0Type, MVT::v8i16,
/*122602*/        OPC_RecordChild1, // #1 = $v1
/*122603*/        OPC_RecordChild2, // #2 = $v2
/*122604*/        OPC_SwitchType /*2 cases */, 60, MVT::v8i16,// ->122667
/*122607*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122609*/          OPC_EmitInteger, MVT::i32, 0, 
/*122612*/          OPC_EmitInteger, MVT::i32, 0, 
/*122615*/          OPC_EmitInteger, MVT::i32, 0, 
/*122618*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122621*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #7
/*122627*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi16), 0,
                        MVT::v16i8, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/*122637*/          OPC_EmitInteger, MVT::i32, 1, 
/*122640*/          OPC_EmitInteger, MVT::i32, 0, 
/*122643*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122646*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VCMPi16), 0,
                        MVT::i32, 5/*#Ops*/, 0, 8, 9, 10, 11,  // Results = #12
/*122657*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                        MVT::v8i16, 4/*#Ops*/, 1, 2, 3, 12, 
                    // Src: (vselect:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$pred, MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2) - Complexity = 3
                    // Dst: (MVE_VPSEL:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 0:{ *:[i32] }, (MVE_VCMPi16:{ *:[i32] } MQPR:{ *:[v8i16] }:$pred, (MVE_VMOVimmi16:{ *:[v16i8] } 0:{ *:[i32] }), 1:{ *:[i32] }))
/*122667*/        /*SwitchType*/ 60, MVT::v8f16,// ->122729
/*122669*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122671*/          OPC_EmitInteger, MVT::i32, 0, 
/*122674*/          OPC_EmitInteger, MVT::i32, 0, 
/*122677*/          OPC_EmitInteger, MVT::i32, 0, 
/*122680*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122683*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #7
/*122689*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi16), 0,
                        MVT::v16i8, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/*122699*/          OPC_EmitInteger, MVT::i32, 1, 
/*122702*/          OPC_EmitInteger, MVT::i32, 0, 
/*122705*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122708*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VCMPi16), 0,
                        MVT::i32, 5/*#Ops*/, 0, 8, 9, 10, 11,  // Results = #12
/*122719*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                        MVT::v8f16, 4/*#Ops*/, 1, 2, 3, 12, 
                    // Src: (vselect:{ *:[v8f16] } MQPR:{ *:[v8i16] }:$pred, MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2) - Complexity = 3
                    // Dst: (MVE_VPSEL:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 0:{ *:[i32] }, (MVE_VCMPi16:{ *:[i32] } MQPR:{ *:[v8i16] }:$pred, (MVE_VMOVimmi16:{ *:[v16i8] } 0:{ *:[i32] }), 1:{ *:[i32] }))
/*122729*/        0, // EndSwitchType
/*122730*/      /*Scope*/ 2|128,1/*130*/, /*->122862*/
/*122732*/        OPC_CheckChild0Type, MVT::v4i32,
/*122734*/        OPC_RecordChild1, // #1 = $v1
/*122735*/        OPC_RecordChild2, // #2 = $v2
/*122736*/        OPC_SwitchType /*2 cases */, 60, MVT::v4i32,// ->122799
/*122739*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122741*/          OPC_EmitInteger, MVT::i32, 0, 
/*122744*/          OPC_EmitInteger, MVT::i32, 0, 
/*122747*/          OPC_EmitInteger, MVT::i32, 0, 
/*122750*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122753*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #7
/*122759*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi32), 0,
                        MVT::v16i8, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/*122769*/          OPC_EmitInteger, MVT::i32, 1, 
/*122772*/          OPC_EmitInteger, MVT::i32, 0, 
/*122775*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122778*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VCMPi32), 0,
                        MVT::i32, 5/*#Ops*/, 0, 8, 9, 10, 11,  // Results = #12
/*122789*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                        MVT::v4i32, 4/*#Ops*/, 1, 2, 3, 12, 
                    // Src: (vselect:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$pred, MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2) - Complexity = 3
                    // Dst: (MVE_VPSEL:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 0:{ *:[i32] }, (MVE_VCMPi32:{ *:[i32] } MQPR:{ *:[v4i32] }:$pred, (MVE_VMOVimmi32:{ *:[v16i8] } 0:{ *:[i32] }), 1:{ *:[i32] }))
/*122799*/        /*SwitchType*/ 60, MVT::v4f32,// ->122861
/*122801*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122803*/          OPC_EmitInteger, MVT::i32, 0, 
/*122806*/          OPC_EmitInteger, MVT::i32, 0, 
/*122809*/          OPC_EmitInteger, MVT::i32, 0, 
/*122812*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122815*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #7
/*122821*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi32), 0,
                        MVT::v16i8, 4/*#Ops*/, 4, 5, 6, 7,  // Results = #8
/*122831*/          OPC_EmitInteger, MVT::i32, 1, 
/*122834*/          OPC_EmitInteger, MVT::i32, 0, 
/*122837*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*122840*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VCMPi32), 0,
                        MVT::i32, 5/*#Ops*/, 0, 8, 9, 10, 11,  // Results = #12
/*122851*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                        MVT::v4f32, 4/*#Ops*/, 1, 2, 3, 12, 
                    // Src: (vselect:{ *:[v4f32] } MQPR:{ *:[v4i32] }:$pred, MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2) - Complexity = 3
                    // Dst: (MVE_VPSEL:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 0:{ *:[i32] }, (MVE_VCMPi32:{ *:[i32] } MQPR:{ *:[v4i32] }:$pred, (MVE_VMOVimmi32:{ *:[v16i8] } 0:{ *:[i32] }), 1:{ *:[i32] }))
/*122861*/        0, // EndSwitchType
/*122862*/      0, /*End of Scope*/
/*122863*/    0, /*End of Scope*/
/*122864*/  /*SwitchOpcode*/ 15|128,3/*399*/, TARGET_VAL(ISD::MLOAD),// ->123267
/*122868*/    OPC_RecordMemRef,
/*122869*/    OPC_RecordNode, // #0 = 'masked_ld' chained node
/*122870*/    OPC_RecordChild1, // #1 = $addr
/*122871*/    OPC_CheckChild1Type, MVT::i32,
/*122873*/    OPC_MoveChild2,
/*122874*/    OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*122877*/    OPC_MoveParent,
/*122878*/    OPC_RecordChild3, // #2 = $pred
/*122879*/    OPC_Scope, 37, /*->122918*/ // 3 children in Scope
/*122881*/      OPC_CheckChild3Type, MVT::v16i1,
/*122883*/      OPC_MoveChild4,
/*122884*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*122887*/      OPC_MoveChild0,
/*122888*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*122891*/      OPC_MoveParent,
/*122892*/      OPC_CheckPredicate, 87, // Predicate_NEONimmAllZerosV
/*122894*/      OPC_MoveParent,
/*122895*/      OPC_CheckPredicate, 100, // Predicate_aligned_maskedloadvi8
/*122897*/      OPC_CheckType, MVT::v16i8,
/*122899*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122901*/      OPC_CheckComplexPat, /*CP*/30, /*#*/1, // SelectT2AddrModeImm7<0>:$addr #3 #4
/*122904*/      OPC_EmitMergeInputChains1_0,
/*122905*/      OPC_EmitInteger, MVT::i32, 1, 
/*122908*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU8), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 4/*#Ops*/, 3, 4, 5, 2, 
                // Src: (masked_ld:{ *:[v16i8] } anonymous_7325:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v16i1] }:$pred, (ARMvmovImm:{ *:[v16i8] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>)<<P:Predicate_aligned_maskedloadvi8>> - Complexity = 23
                // Dst: (MVE_VLDRBU8:{ *:[v16i8] } anonymous_7325:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred)
/*122918*/    /*Scope*/ 8|128,1/*136*/, /*->123056*/
/*122920*/      OPC_CheckChild3Type, MVT::v8i1,
/*122922*/      OPC_MoveChild4,
/*122923*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*122926*/      OPC_MoveChild0,
/*122927*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*122930*/      OPC_MoveParent,
/*122931*/      OPC_CheckPredicate, 87, // Predicate_NEONimmAllZerosV
/*122933*/      OPC_MoveParent,
/*122934*/      OPC_SwitchType /*2 cases */, 95, MVT::v8i16,// ->123032
/*122937*/        OPC_Scope, 21, /*->122960*/ // 2 children in Scope
/*122939*/          OPC_CheckPredicate, 101, // Predicate_aligned_maskedloadvi16
/*122941*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122943*/          OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectT2AddrModeImm7<1>:$addr #3 #4
/*122946*/          OPC_EmitMergeInputChains1_0,
/*122947*/          OPC_EmitInteger, MVT::i32, 1, 
/*122950*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 4/*#Ops*/, 3, 4, 5, 2, 
                    // Src: (masked_ld:{ *:[v8i16] } anonymous_7327:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v8i1] }:$pred, (ARMvmovImm:{ *:[v8i16] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>)<<P:Predicate_aligned_maskedloadvi16>> - Complexity = 23
                    // Dst: (MVE_VLDRHU16:{ *:[v8i16] } anonymous_7327:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/*122960*/        /*Scope*/ 70, /*->123031*/
/*122961*/          OPC_CheckPredicate, 100, // Predicate_aligned_maskedloadvi8
/*122963*/          OPC_Scope, 21, /*->122986*/ // 3 children in Scope
/*122965*/            OPC_CheckPredicate, 102, // Predicate_aligned_extmaskedloadvi8
/*122967*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122969*/            OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectTAddrModeImm7<0>:$addr #3 #4
/*122972*/            OPC_EmitMergeInputChains1_0,
/*122973*/            OPC_EmitInteger, MVT::i32, 1, 
/*122976*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU16), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 4/*#Ops*/, 3, 4, 5, 2, 
                      // Src: (masked_ld:{ *:[v8i16] } anonymous_7319:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v8i1] }:$pred, (ARMvmovImm:{ *:[v8i16] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>)<<P:Predicate_aligned_maskedloadvi8>><<P:Predicate_aligned_extmaskedloadvi8>> - Complexity = 23
                      // Dst: (MVE_VLDRBU16:{ *:[v8i16] } anonymous_7319:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/*122986*/          /*Scope*/ 21, /*->123008*/
/*122987*/            OPC_CheckPredicate, 103, // Predicate_aligned_sextmaskedloadvi8
/*122989*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*122991*/            OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectTAddrModeImm7<0>:$addr #3 #4
/*122994*/            OPC_EmitMergeInputChains1_0,
/*122995*/            OPC_EmitInteger, MVT::i32, 1, 
/*122998*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBS16), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 4/*#Ops*/, 3, 4, 5, 2, 
                      // Src: (masked_ld:{ *:[v8i16] } anonymous_7319:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v8i1] }:$pred, (ARMvmovImm:{ *:[v8i16] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>)<<P:Predicate_aligned_maskedloadvi8>><<P:Predicate_aligned_sextmaskedloadvi8>> - Complexity = 23
                      // Dst: (MVE_VLDRBS16:{ *:[v8i16] } anonymous_7319:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/*123008*/          /*Scope*/ 21, /*->123030*/
/*123009*/            OPC_CheckPredicate, 104, // Predicate_aligned_zextmaskedloadvi8
/*123011*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*123013*/            OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectTAddrModeImm7<0>:$addr #3 #4
/*123016*/            OPC_EmitMergeInputChains1_0,
/*123017*/            OPC_EmitInteger, MVT::i32, 1, 
/*123020*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU16), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 4/*#Ops*/, 3, 4, 5, 2, 
                      // Src: (masked_ld:{ *:[v8i16] } anonymous_7319:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v8i1] }:$pred, (ARMvmovImm:{ *:[v8i16] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>)<<P:Predicate_aligned_maskedloadvi8>><<P:Predicate_aligned_zextmaskedloadvi8>> - Complexity = 23
                      // Dst: (MVE_VLDRBU16:{ *:[v8i16] } anonymous_7319:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/*123030*/          0, /*End of Scope*/
/*123031*/        0, /*End of Scope*/
/*123032*/      /*SwitchType*/ 21, MVT::v8f16,// ->123055
/*123034*/        OPC_CheckPredicate, 101, // Predicate_aligned_maskedloadvi16
/*123036*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*123038*/        OPC_CheckComplexPat, /*CP*/31, /*#*/1, // SelectT2AddrModeImm7<1>:$addr #3 #4
/*123041*/        OPC_EmitMergeInputChains1_0,
/*123042*/        OPC_EmitInteger, MVT::i32, 1, 
/*123045*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f16, 4/*#Ops*/, 3, 4, 5, 2, 
                  // Src: (masked_ld:{ *:[v8f16] } anonymous_7327:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v8i1] }:$pred, (ARMvmovImm:{ *:[v8f16] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>)<<P:Predicate_aligned_maskedloadvi16>> - Complexity = 23
                  // Dst: (MVE_VLDRHU16:{ *:[v8f16] } anonymous_7327:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/*123055*/      0, // EndSwitchType
/*123056*/    /*Scope*/ 80|128,1/*208*/, /*->123266*/
/*123058*/      OPC_CheckChild3Type, MVT::v4i1,
/*123060*/      OPC_MoveChild4,
/*123061*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VMOVIMM),
/*123064*/      OPC_MoveChild0,
/*123065*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*123068*/      OPC_MoveParent,
/*123069*/      OPC_CheckPredicate, 87, // Predicate_NEONimmAllZerosV
/*123071*/      OPC_MoveParent,
/*123072*/      OPC_SwitchType /*2 cases */, 38|128,1/*166*/, MVT::v4i32,// ->123242
/*123076*/        OPC_Scope, 21, /*->123099*/ // 3 children in Scope
/*123078*/          OPC_CheckPredicate, 105, // Predicate_aligned_maskedloadvi32
/*123080*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*123082*/          OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectT2AddrModeImm7<2>:$addr #3 #4
/*123085*/          OPC_EmitMergeInputChains1_0,
/*123086*/          OPC_EmitInteger, MVT::i32, 1, 
/*123089*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 4/*#Ops*/, 3, 4, 5, 2, 
                    // Src: (masked_ld:{ *:[v4i32] } anonymous_7329:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v4i1] }:$pred, (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>)<<P:Predicate_aligned_maskedloadvi32>> - Complexity = 23
                    // Dst: (MVE_VLDRWU32:{ *:[v4i32] } anonymous_7329:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*123099*/        /*Scope*/ 70, /*->123170*/
/*123100*/          OPC_CheckPredicate, 100, // Predicate_aligned_maskedloadvi8
/*123102*/          OPC_Scope, 21, /*->123125*/ // 3 children in Scope
/*123104*/            OPC_CheckPredicate, 102, // Predicate_aligned_extmaskedloadvi8
/*123106*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*123108*/            OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectTAddrModeImm7<0>:$addr #3 #4
/*123111*/            OPC_EmitMergeInputChains1_0,
/*123112*/            OPC_EmitInteger, MVT::i32, 1, 
/*123115*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 4/*#Ops*/, 3, 4, 5, 2, 
                      // Src: (masked_ld:{ *:[v4i32] } anonymous_7319:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v4i1] }:$pred, (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>)<<P:Predicate_aligned_maskedloadvi8>><<P:Predicate_aligned_extmaskedloadvi8>> - Complexity = 23
                      // Dst: (MVE_VLDRBU32:{ *:[v4i32] } anonymous_7319:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*123125*/          /*Scope*/ 21, /*->123147*/
/*123126*/            OPC_CheckPredicate, 103, // Predicate_aligned_sextmaskedloadvi8
/*123128*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*123130*/            OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectTAddrModeImm7<0>:$addr #3 #4
/*123133*/            OPC_EmitMergeInputChains1_0,
/*123134*/            OPC_EmitInteger, MVT::i32, 1, 
/*123137*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBS32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 4/*#Ops*/, 3, 4, 5, 2, 
                      // Src: (masked_ld:{ *:[v4i32] } anonymous_7319:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v4i1] }:$pred, (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>)<<P:Predicate_aligned_maskedloadvi8>><<P:Predicate_aligned_sextmaskedloadvi8>> - Complexity = 23
                      // Dst: (MVE_VLDRBS32:{ *:[v4i32] } anonymous_7319:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*123147*/          /*Scope*/ 21, /*->123169*/
/*123148*/            OPC_CheckPredicate, 104, // Predicate_aligned_zextmaskedloadvi8
/*123150*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*123152*/            OPC_CheckComplexPat, /*CP*/36, /*#*/1, // SelectTAddrModeImm7<0>:$addr #3 #4
/*123155*/            OPC_EmitMergeInputChains1_0,
/*123156*/            OPC_EmitInteger, MVT::i32, 1, 
/*123159*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRBU32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 4/*#Ops*/, 3, 4, 5, 2, 
                      // Src: (masked_ld:{ *:[v4i32] } anonymous_7319:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v4i1] }:$pred, (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>)<<P:Predicate_aligned_maskedloadvi8>><<P:Predicate_aligned_zextmaskedloadvi8>> - Complexity = 23
                      // Dst: (MVE_VLDRBU32:{ *:[v4i32] } anonymous_7319:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*123169*/          0, /*End of Scope*/
/*123170*/        /*Scope*/ 70, /*->123241*/
/*123171*/          OPC_CheckPredicate, 101, // Predicate_aligned_maskedloadvi16
/*123173*/          OPC_Scope, 21, /*->123196*/ // 3 children in Scope
/*123175*/            OPC_CheckPredicate, 102, // Predicate_aligned_extmaskedloadvi16
/*123177*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*123179*/            OPC_CheckComplexPat, /*CP*/37, /*#*/1, // SelectTAddrModeImm7<1>:$addr #3 #4
/*123182*/            OPC_EmitMergeInputChains1_0,
/*123183*/            OPC_EmitInteger, MVT::i32, 1, 
/*123186*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 4/*#Ops*/, 3, 4, 5, 2, 
                      // Src: (masked_ld:{ *:[v4i32] } anonymous_7322:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v4i1] }:$pred, (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>)<<P:Predicate_aligned_maskedloadvi16>><<P:Predicate_aligned_extmaskedloadvi16>> - Complexity = 23
                      // Dst: (MVE_VLDRHU32:{ *:[v4i32] } anonymous_7322:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*123196*/          /*Scope*/ 21, /*->123218*/
/*123197*/            OPC_CheckPredicate, 103, // Predicate_aligned_sextmaskedloadvi16
/*123199*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*123201*/            OPC_CheckComplexPat, /*CP*/37, /*#*/1, // SelectTAddrModeImm7<1>:$addr #3 #4
/*123204*/            OPC_EmitMergeInputChains1_0,
/*123205*/            OPC_EmitInteger, MVT::i32, 1, 
/*123208*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHS32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 4/*#Ops*/, 3, 4, 5, 2, 
                      // Src: (masked_ld:{ *:[v4i32] } anonymous_7322:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v4i1] }:$pred, (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>)<<P:Predicate_aligned_maskedloadvi16>><<P:Predicate_aligned_sextmaskedloadvi16>> - Complexity = 23
                      // Dst: (MVE_VLDRHS32:{ *:[v4i32] } anonymous_7322:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*123218*/          /*Scope*/ 21, /*->123240*/
/*123219*/            OPC_CheckPredicate, 104, // Predicate_aligned_zextmaskedloadvi16
/*123221*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*123223*/            OPC_CheckComplexPat, /*CP*/37, /*#*/1, // SelectTAddrModeImm7<1>:$addr #3 #4
/*123226*/            OPC_EmitMergeInputChains1_0,
/*123227*/            OPC_EmitInteger, MVT::i32, 1, 
/*123230*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRHU32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 4/*#Ops*/, 3, 4, 5, 2, 
                      // Src: (masked_ld:{ *:[v4i32] } anonymous_7322:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v4i1] }:$pred, (ARMvmovImm:{ *:[v4i32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>)<<P:Predicate_aligned_maskedloadvi16>><<P:Predicate_aligned_zextmaskedloadvi16>> - Complexity = 23
                      // Dst: (MVE_VLDRHU32:{ *:[v4i32] } anonymous_7322:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*123240*/          0, /*End of Scope*/
/*123241*/        0, /*End of Scope*/
/*123242*/      /*SwitchType*/ 21, MVT::v4f32,// ->123265
/*123244*/        OPC_CheckPredicate, 105, // Predicate_aligned_maskedloadvi32
/*123246*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*123248*/        OPC_CheckComplexPat, /*CP*/32, /*#*/1, // SelectT2AddrModeImm7<2>:$addr #3 #4
/*123251*/        OPC_EmitMergeInputChains1_0,
/*123252*/        OPC_EmitInteger, MVT::i32, 1, 
/*123255*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VLDRWU32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 4/*#Ops*/, 3, 4, 5, 2, 
                  // Src: (masked_ld:{ *:[v4f32] } anonymous_7329:{ *:[i32] }:$addr, (undef:{ *:[iPTR] }), VCCR:{ *:[v4i1] }:$pred, (ARMvmovImm:{ *:[v4f32] } (timm:{ *:[i32] }))<<P:Predicate_NEONimmAllZerosV>>)<<P:Predicate_aligned_maskedloadvi32>> - Complexity = 23
                  // Dst: (MVE_VLDRWU32:{ *:[v4f32] } anonymous_7329:{ *:[i32] }:$addr, 1:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*123265*/      0, // EndSwitchType
/*123266*/    0, /*End of Scope*/
/*123267*/  /*SwitchOpcode*/ 23|128,8/*1047*/, TARGET_VAL(ISD::INSERT_VECTOR_ELT),// ->124318
/*123271*/    OPC_RecordChild0, // #0 = $src
/*123272*/    OPC_Scope, 126|128,1/*254*/, /*->123529*/ // 4 children in Scope
/*123275*/      OPC_MoveChild1,
/*123276*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*123279*/      OPC_RecordMemRef,
/*123280*/      OPC_RecordNode, // #1 = 'ld' chained node
/*123281*/      OPC_CheckFoldableChainNode,
/*123282*/      OPC_RecordChild1, // #2 = $Rn
/*123283*/      OPC_CheckChild1Type, MVT::i32,
/*123285*/      OPC_CheckPredicate, 37, // Predicate_unindexedload
/*123287*/      OPC_CheckType, MVT::i32,
/*123289*/      OPC_Scope, 80, /*->123371*/ // 4 children in Scope
/*123291*/        OPC_CheckPredicate, 38, // Predicate_extload
/*123293*/        OPC_Scope, 37, /*->123332*/ // 2 children in Scope
/*123295*/          OPC_CheckPredicate, 44, // Predicate_extloadi8
/*123297*/          OPC_MoveParent,
/*123298*/          OPC_RecordChild2, // #3 = $lane
/*123299*/          OPC_MoveChild2,
/*123300*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123303*/          OPC_MoveParent,
/*123304*/          OPC_CheckType, MVT::v8i8,
/*123306*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*123308*/          OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$Rn #4 #5
/*123311*/          OPC_EmitMergeInputChains1_1,
/*123312*/          OPC_EmitConvertToTarget, 3,
/*123314*/          OPC_EmitInteger, MVT::i32, 14, 
/*123317*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123320*/          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)
/*123332*/        /*Scope*/ 37, /*->123370*/
/*123333*/          OPC_CheckPredicate, 39, // Predicate_extloadi16
/*123335*/          OPC_MoveParent,
/*123336*/          OPC_RecordChild2, // #3 = $lane
/*123337*/          OPC_MoveChild2,
/*123338*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123341*/          OPC_MoveParent,
/*123342*/          OPC_CheckType, MVT::v4i16,
/*123344*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*123346*/          OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$Rn #4 #5
/*123349*/          OPC_EmitMergeInputChains1_1,
/*123350*/          OPC_EmitConvertToTarget, 3,
/*123352*/          OPC_EmitInteger, MVT::i32, 14, 
/*123355*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123358*/          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)
/*123370*/        0, /*End of Scope*/
/*123371*/      /*Scope*/ 37, /*->123409*/
/*123372*/        OPC_CheckPredicate, 60, // Predicate_load
/*123374*/        OPC_MoveParent,
/*123375*/        OPC_RecordChild2, // #3 = $lane
/*123376*/        OPC_MoveChild2,
/*123377*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123380*/        OPC_MoveParent,
/*123381*/        OPC_CheckType, MVT::v2i32,
/*123383*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*123385*/        OPC_CheckComplexPat, /*CP*/14, /*#*/2, // SelectAddrMode6:$Rn #4 #5
/*123388*/        OPC_EmitMergeInputChains1_1,
/*123389*/        OPC_EmitConvertToTarget, 3,
/*123391*/        OPC_EmitInteger, MVT::i32, 14, 
/*123394*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123397*/        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)
/*123409*/      /*Scope*/ 80, /*->123490*/
/*123410*/        OPC_CheckPredicate, 38, // Predicate_extload
/*123412*/        OPC_Scope, 37, /*->123451*/ // 2 children in Scope
/*123414*/          OPC_CheckPredicate, 44, // Predicate_extloadi8
/*123416*/          OPC_MoveParent,
/*123417*/          OPC_RecordChild2, // #3 = $lane
/*123418*/          OPC_MoveChild2,
/*123419*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123422*/          OPC_MoveParent,
/*123423*/          OPC_CheckType, MVT::v16i8,
/*123425*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*123427*/          OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #4 #5
/*123430*/          OPC_EmitMergeInputChains1_1,
/*123431*/          OPC_EmitConvertToTarget, 3,
/*123433*/          OPC_EmitInteger, MVT::i32, 14, 
/*123436*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123439*/          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)
/*123451*/        /*Scope*/ 37, /*->123489*/
/*123452*/          OPC_CheckPredicate, 39, // Predicate_extloadi16
/*123454*/          OPC_MoveParent,
/*123455*/          OPC_RecordChild2, // #3 = $lane
/*123456*/          OPC_MoveChild2,
/*123457*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123460*/          OPC_MoveParent,
/*123461*/          OPC_CheckType, MVT::v8i16,
/*123463*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*123465*/          OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #4 #5
/*123468*/          OPC_EmitMergeInputChains1_1,
/*123469*/          OPC_EmitConvertToTarget, 3,
/*123471*/          OPC_EmitInteger, MVT::i32, 14, 
/*123474*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123477*/          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)
/*123489*/        0, /*End of Scope*/
/*123490*/      /*Scope*/ 37, /*->123528*/
/*123491*/        OPC_CheckPredicate, 60, // Predicate_load
/*123493*/        OPC_MoveParent,
/*123494*/        OPC_RecordChild2, // #3 = $lane
/*123495*/        OPC_MoveChild2,
/*123496*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123499*/        OPC_MoveParent,
/*123500*/        OPC_CheckType, MVT::v4i32,
/*123502*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*123504*/        OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #4 #5
/*123507*/        OPC_EmitMergeInputChains1_1,
/*123508*/        OPC_EmitConvertToTarget, 3,
/*123510*/        OPC_EmitInteger, MVT::i32, 14, 
/*123513*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123516*/        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)
/*123528*/      0, /*End of Scope*/
/*123529*/    /*Scope*/ 87|128,2/*343*/, /*->123874*/
/*123531*/      OPC_RecordChild1, // #1 = $R
/*123532*/      OPC_Scope, 56, /*->123590*/ // 4 children in Scope
/*123534*/        OPC_CheckChild1Type, MVT::i32,
/*123536*/        OPC_RecordChild2, // #2 = $lane
/*123537*/        OPC_MoveChild2,
/*123538*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123541*/        OPC_MoveParent,
/*123542*/        OPC_SwitchType /*2 cases */, 21, MVT::v8i8,// ->123566
/*123545*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*123547*/          OPC_EmitConvertToTarget, 2,
/*123549*/          OPC_EmitInteger, MVT::i32, 14, 
/*123552*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123555*/          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)
/*123566*/        /*SwitchType*/ 21, MVT::v4i16,// ->123589
/*123568*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*123570*/          OPC_EmitConvertToTarget, 2,
/*123572*/          OPC_EmitInteger, MVT::i32, 14, 
/*123575*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123578*/          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)
/*123589*/        0, // EndSwitchType
/*123590*/      /*Scope*/ 54, /*->123645*/
/*123591*/        OPC_RecordChild2, // #2 = $lane
/*123592*/        OPC_MoveChild2,
/*123593*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123596*/        OPC_MoveParent,
/*123597*/        OPC_SwitchType /*2 cases */, 21, MVT::v2i32,// ->123621
/*123600*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasVFP2Base())
/*123602*/          OPC_EmitConvertToTarget, 2,
/*123604*/          OPC_EmitInteger, MVT::i32, 14, 
/*123607*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123610*/          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)
/*123621*/        /*SwitchType*/ 21, MVT::v4i32,// ->123644
/*123623*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*123625*/          OPC_EmitConvertToTarget, 2,
/*123627*/          OPC_EmitInteger, MVT::i32, 14, 
/*123630*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123633*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOV_to_lane_32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                    // Src: (insertelt:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                    // Dst: (MVE_VMOV_to_lane_32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$lane)
/*123644*/        0, // EndSwitchType
/*123645*/      /*Scope*/ 38|128,1/*166*/, /*->123813*/
/*123647*/        OPC_CheckChild1Type, MVT::i32,
/*123649*/        OPC_RecordChild2, // #2 = $lane
/*123650*/        OPC_MoveChild2,
/*123651*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123654*/        OPC_MoveParent,
/*123655*/        OPC_SwitchType /*2 cases */, 76, MVT::v16i8,// ->123734
/*123658*/          OPC_Scope, 21, /*->123681*/ // 2 children in Scope
/*123660*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*123662*/            OPC_EmitConvertToTarget, 2,
/*123664*/            OPC_EmitInteger, MVT::i32, 14, 
/*123667*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123670*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOV_to_lane_8), 0,
                          MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (vector_insert:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                      // Dst: (MVE_VMOV_to_lane_8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$lane)
/*123681*/          /*Scope*/ 51, /*->123733*/
/*123682*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*123684*/            OPC_EmitConvertToTarget, 2,
/*123686*/            OPC_EmitNodeXForm, 15, 3, // DSubReg_i8_reg
/*123689*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i8, 2/*#Ops*/, 0, 4,  // Results = #5
/*123697*/            OPC_EmitConvertToTarget, 2,
/*123699*/            OPC_EmitNodeXForm, 16, 6, // SubReg_i8_lane
/*123702*/            OPC_EmitInteger, MVT::i32, 14, 
/*123705*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123708*/            OPC_EmitNode1, TARGET_VAL(ARM::VSETLNi8), 0,
                          MVT::v8i8, 5/*#Ops*/, 5, 1, 7, 8, 9,  // Results = #10
/*123719*/            OPC_EmitConvertToTarget, 2,
/*123721*/            OPC_EmitNodeXForm, 15, 11, // DSubReg_i8_reg
/*123724*/            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))
/*123733*/          0, /*End of Scope*/
/*123734*/        /*SwitchType*/ 76, MVT::v8i16,// ->123812
/*123736*/          OPC_Scope, 21, /*->123759*/ // 2 children in Scope
/*123738*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*123740*/            OPC_EmitConvertToTarget, 2,
/*123742*/            OPC_EmitInteger, MVT::i32, 14, 
/*123745*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123748*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOV_to_lane_16), 0,
                          MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                      // Src: (vector_insert:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                      // Dst: (MVE_VMOV_to_lane_16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src1, rGPR:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$lane)
/*123759*/          /*Scope*/ 51, /*->123811*/
/*123760*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*123762*/            OPC_EmitConvertToTarget, 2,
/*123764*/            OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/*123767*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v4i16, 2/*#Ops*/, 0, 4,  // Results = #5
/*123775*/            OPC_EmitConvertToTarget, 2,
/*123777*/            OPC_EmitNodeXForm, 6, 6, // SubReg_i16_lane
/*123780*/            OPC_EmitInteger, MVT::i32, 14, 
/*123783*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123786*/            OPC_EmitNode1, TARGET_VAL(ARM::VSETLNi16), 0,
                          MVT::v4i16, 5/*#Ops*/, 5, 1, 7, 8, 9,  // Results = #10
/*123797*/            OPC_EmitConvertToTarget, 2,
/*123799*/            OPC_EmitNodeXForm, 5, 11, // DSubReg_i16_reg
/*123802*/            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))
/*123811*/          0, /*End of Scope*/
/*123812*/        0, // EndSwitchType
/*123813*/      /*Scope*/ 59, /*->123873*/
/*123814*/        OPC_RecordChild2, // #2 = $lane
/*123815*/        OPC_MoveChild2,
/*123816*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123819*/        OPC_MoveParent,
/*123820*/        OPC_CheckType, MVT::v4i32,
/*123822*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*123824*/        OPC_EmitConvertToTarget, 2,
/*123826*/        OPC_EmitNodeXForm, 7, 3, // DSubReg_i32_reg
/*123829*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 4,  // Results = #5
/*123837*/        OPC_EmitConvertToTarget, 2,
/*123839*/        OPC_EmitNodeXForm, 8, 6, // SubReg_i32_lane
/*123842*/        OPC_EmitInteger, MVT::i32, 14, 
/*123845*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123848*/        OPC_EmitNode1, TARGET_VAL(ARM::VSETLNi32), 0,
                      MVT::v2i32, 5/*#Ops*/, 5, 1, 7, 8, 9,  // Results = #10
/*123859*/        OPC_EmitConvertToTarget, 2,
/*123861*/        OPC_EmitNodeXForm, 7, 11, // DSubReg_i32_reg
/*123864*/        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))
/*123873*/      0, /*End of Scope*/
/*123874*/    /*Scope*/ 22|128,1/*150*/, /*->124026*/
/*123876*/      OPC_MoveChild1,
/*123877*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*123880*/      OPC_RecordMemRef,
/*123881*/      OPC_RecordNode, // #1 = 'ld' chained node
/*123882*/      OPC_CheckFoldableChainNode,
/*123883*/      OPC_RecordChild1, // #2 = $addr
/*123884*/      OPC_CheckChild1Type, MVT::i32,
/*123886*/      OPC_CheckPredicate, 37, // Predicate_unindexedload
/*123888*/      OPC_CheckPredicate, 60, // Predicate_load
/*123890*/      OPC_SwitchType /*2 cases */, 65, MVT::f16,// ->123958
/*123893*/        OPC_MoveParent,
/*123894*/        OPC_RecordChild2, // #3 = $lane
/*123895*/        OPC_MoveChild2,
/*123896*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123899*/        OPC_MoveParent,
/*123900*/        OPC_SwitchType /*2 cases */, 26, MVT::v4f16,// ->123929
/*123903*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*123905*/          OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #4 #5
/*123908*/          OPC_EmitMergeInputChains1_1,
/*123909*/          OPC_EmitConvertToTarget, 3,
/*123911*/          OPC_EmitInteger, MVT::i32, 14, 
/*123914*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123917*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1LNd16), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f16, 6/*#Ops*/, 4, 5, 0, 6, 7, 8, 
                    // Src: (vector_insert:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src, (ld:{ *:[f16] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }):$lane) - Complexity = 19
                    // Dst: (VLD1LNd16:{ *:[v4f16] } addrmode6:{ *:[i32] }:$addr, DPR:{ *:[v4f16] }:$src, (imm:{ *:[i32] }):$lane)
/*123929*/        /*SwitchType*/ 26, MVT::v8f16,// ->123957
/*123931*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*123933*/          OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #4 #5
/*123936*/          OPC_EmitMergeInputChains1_1,
/*123937*/          OPC_EmitConvertToTarget, 3,
/*123939*/          OPC_EmitInteger, MVT::i32, 14, 
/*123942*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123945*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1LNq16Pseudo), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f16, 6/*#Ops*/, 4, 5, 0, 6, 7, 8, 
                    // Src: (vector_insert:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src, (ld:{ *:[f16] } addrmode6:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }):$lane) - Complexity = 19
                    // Dst: (VLD1LNq16Pseudo:{ *:[v8f16] } addrmode6:{ *:[i32] }:$addr, QPR:{ *:[v8f16] }:$src, (imm:{ *:[i32] }):$lane)
/*123957*/        0, // EndSwitchType
/*123958*/      /*SwitchType*/ 65, MVT::f32,// ->124025
/*123960*/        OPC_MoveParent,
/*123961*/        OPC_RecordChild2, // #3 = $lane
/*123962*/        OPC_MoveChild2,
/*123963*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123966*/        OPC_MoveParent,
/*123967*/        OPC_SwitchType /*2 cases */, 26, MVT::v2f32,// ->123996
/*123970*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*123972*/          OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #4 #5
/*123975*/          OPC_EmitMergeInputChains1_1,
/*123976*/          OPC_EmitConvertToTarget, 3,
/*123978*/          OPC_EmitInteger, MVT::i32, 14, 
/*123981*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*123984*/          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)
/*123996*/        /*SwitchType*/ 26, MVT::v4f32,// ->124024
/*123998*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124000*/          OPC_CheckComplexPat, /*CP*/12, /*#*/2, // SelectAddrMode6:$addr #4 #5
/*124003*/          OPC_EmitMergeInputChains1_1,
/*124004*/          OPC_EmitConvertToTarget, 3,
/*124006*/          OPC_EmitInteger, MVT::i32, 14, 
/*124009*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124012*/          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)
/*124024*/        0, // EndSwitchType
/*124025*/      0, // EndSwitchType
/*124026*/    /*Scope*/ 33|128,2/*289*/, /*->124317*/
/*124028*/      OPC_RecordChild1, // #1 = $src2
/*124029*/      OPC_RecordChild2, // #2 = $src3
/*124030*/      OPC_MoveChild2,
/*124031*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*124034*/      OPC_MoveParent,
/*124035*/      OPC_SwitchType /*5 cases */, 47, MVT::v2f64,// ->124085
/*124038*/        OPC_Scope, 16, /*->124056*/ // 2 children in Scope
/*124040*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124042*/          OPC_EmitConvertToTarget, 2,
/*124044*/          OPC_EmitNodeXForm, 19, 3, // DSubReg_f64_reg
/*124047*/          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))
/*124056*/        /*Scope*/ 27, /*->124084*/
/*124057*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*124059*/          OPC_EmitInteger, MVT::i32, ARM::MQPRRegClassID,
/*124062*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 3,  // Results = #4
/*124070*/          OPC_EmitConvertToTarget, 2,
/*124072*/          OPC_EmitNodeXForm, 19, 5, // DSubReg_f64_reg
/*124075*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f64, 3/*#Ops*/, 4, 1, 6, 
                    // Src: (insertelt:{ *:[v2f64] } MQPR:{ *:[v2f64] }:$src1, DPR:{ *:[f64] }:$src2, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                    // Dst: (INSERT_SUBREG:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } MQPR:{ *:[v2f64] }:$src1, MQPR:{ *:[i32] }), DPR:{ *:[f64] }:$src2, (DSubReg_f64_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane))
/*124084*/        0, /*End of Scope*/
/*124085*/      /*SwitchType*/ 27, MVT::v2f32,// ->124114
/*124087*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124089*/        OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
/*124092*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*124100*/        OPC_EmitConvertToTarget, 2,
/*124102*/        OPC_EmitNodeXForm, 17, 5, // SSubReg_f32_reg
/*124105*/        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))
/*124114*/      /*SwitchType*/ 58, MVT::v4f32,// ->124174
/*124116*/        OPC_Scope, 27, /*->124145*/ // 2 children in Scope
/*124118*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124120*/          OPC_EmitInteger, MVT::i32, ARM::QPR_VFP2RegClassID,
/*124123*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*124131*/          OPC_EmitConvertToTarget, 2,
/*124133*/          OPC_EmitNodeXForm, 17, 5, // SSubReg_f32_reg
/*124136*/          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))
/*124145*/        /*Scope*/ 27, /*->124173*/
/*124146*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*124148*/          OPC_EmitInteger, MVT::i32, ARM::MQPRRegClassID,
/*124151*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*124159*/          OPC_EmitConvertToTarget, 2,
/*124161*/          OPC_EmitNodeXForm, 17, 5, // SSubReg_f32_reg
/*124164*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f32, 3/*#Ops*/, 4, 1, 6, 
                    // Src: (insertelt:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$src1, SPR:{ *:[f32] }:$src2, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                    // Dst: (INSERT_SUBREG:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$src1, MQPR:{ *:[i32] }), SPR:{ *:[f32] }:$src2, (SSubReg_f32_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane))
/*124173*/        0, /*End of Scope*/
/*124174*/      /*SwitchType*/ 36, MVT::v4f16,// ->124212
/*124176*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124178*/        OPC_EmitInteger, MVT::i32, 14, 
/*124181*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124184*/        OPC_EmitNode1, TARGET_VAL(ARM::VMOVRH), 0,
                      MVT::i32, 3/*#Ops*/, 1, 3, 4,  // Results = #5
/*124193*/        OPC_EmitConvertToTarget, 2,
/*124195*/        OPC_EmitInteger, MVT::i32, 14, 
/*124198*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124201*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSETLNi16), 0,
                      MVT::v4f16, 5/*#Ops*/, 0, 5, 6, 7, 8, 
                  // Src: (insertelt:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, HPR:{ *:[f16] }:$src2, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                  // Dst: (VSETLNi16:{ *:[v4f16] } DPR:{ *:[v4f16] }:$src1, (VMOVRH:{ *:[i32] } ?:{ *:[f16] }:$src2), (imm:{ *:[i32] }):$lane)
/*124212*/      /*SwitchType*/ 102, MVT::v8f16,// ->124316
/*124214*/        OPC_Scope, 32, /*->124248*/ // 2 children in Scope
/*124216*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*124218*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*124221*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 3,  // Results = #4
/*124229*/          OPC_EmitConvertToTarget, 2,
/*124231*/          OPC_EmitInteger, MVT::i32, 14, 
/*124234*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124237*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOV_to_lane_16), 0,
                        MVT::v8f16, 5/*#Ops*/, 0, 4, 5, 6, 7, 
                    // Src: (insertelt:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$src1, HPR:{ *:[f16] }:$src2, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                    // Dst: (MVE_VMOV_to_lane_16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$src1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$src2, rGPR:{ *:[i32] }), (imm:{ *:[i32] }):$lane)
/*124248*/        /*Scope*/ 66, /*->124315*/
/*124249*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124251*/          OPC_EmitConvertToTarget, 2,
/*124253*/          OPC_EmitNodeXForm, 5, 3, // DSubReg_i16_reg
/*124256*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i16, 2/*#Ops*/, 0, 4,  // Results = #5
/*124264*/          OPC_EmitInteger, MVT::i32, 14, 
/*124267*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124270*/          OPC_EmitNode1, TARGET_VAL(ARM::VMOVRH), 0,
                        MVT::i32, 3/*#Ops*/, 1, 6, 7,  // Results = #8
/*124279*/          OPC_EmitConvertToTarget, 2,
/*124281*/          OPC_EmitNodeXForm, 6, 9, // SubReg_i16_lane
/*124284*/          OPC_EmitInteger, MVT::i32, 14, 
/*124287*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124290*/          OPC_EmitNode1, TARGET_VAL(ARM::VSETLNi16), 0,
                        MVT::v4i16, 5/*#Ops*/, 5, 8, 10, 11, 12,  // Results = #13
/*124301*/          OPC_EmitConvertToTarget, 2,
/*124303*/          OPC_EmitNodeXForm, 5, 14, // DSubReg_i16_reg
/*124306*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f16, 3/*#Ops*/, 0, 13, 15, 
                    // Src: (insertelt:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, HPR:{ *:[f16] }:$src2, (imm:{ *:[iPTR] }):$lane) - Complexity = 6
                    // Dst: (INSERT_SUBREG:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src1, (VSETLNi16:{ *:[v4i16] } (EXTRACT_SUBREG:{ *:[v4i16] } QPR:{ *:[v8f16] }:$src1, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)), (VMOVRH:{ *:[i32] } ?:{ *:[f16] }:$src2), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[iPTR] }):$lane)), (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[iPTR] }):$lane))
/*124315*/        0, /*End of Scope*/
/*124316*/      0, // EndSwitchType
/*124317*/    0, /*End of Scope*/
/*124318*/  /*SwitchOpcode*/ 54|128,6/*822*/, TARGET_VAL(ARMISD::VDUP),// ->125144
/*124322*/    OPC_Scope, 65|128,1/*193*/, /*->124518*/ // 4 children in Scope
/*124325*/      OPC_MoveChild0,
/*124326*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*124329*/      OPC_RecordMemRef,
/*124330*/      OPC_RecordNode, // #0 = 'ld' chained node
/*124331*/      OPC_RecordChild1, // #1 = $Rn
/*124332*/      OPC_CheckChild1Type, MVT::i32,
/*124334*/      OPC_CheckPredicate, 37, // Predicate_unindexedload
/*124336*/      OPC_CheckType, MVT::i32,
/*124338*/      OPC_Scope, 60, /*->124400*/ // 4 children in Scope
/*124340*/        OPC_CheckPredicate, 38, // Predicate_extload
/*124342*/        OPC_Scope, 27, /*->124371*/ // 2 children in Scope
/*124344*/          OPC_CheckPredicate, 44, // Predicate_extloadi8
/*124346*/          OPC_MoveParent,
/*124347*/          OPC_CheckType, MVT::v8i8,
/*124349*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124351*/          OPC_CheckComplexPat, /*CP*/41, /*#*/1, // SelectAddrMode6:$Rn #2 #3
/*124354*/          OPC_EmitMergeInputChains1_0,
/*124355*/          OPC_EmitInteger, MVT::i32, 14, 
/*124358*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124361*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPd8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i8, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ARMvdup:{ *:[v8i8] } (ld:{ *:[i32] } addrmode6dupalignNone:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>) - Complexity = 16
                    // Dst: (VLD1DUPd8:{ *:[v8i8] } addrmode6dupalignNone:{ *:[i32] }:$Rn)
/*124371*/        /*Scope*/ 27, /*->124399*/
/*124372*/          OPC_CheckPredicate, 39, // Predicate_extloadi16
/*124374*/          OPC_MoveParent,
/*124375*/          OPC_CheckType, MVT::v4i16,
/*124377*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124379*/          OPC_CheckComplexPat, /*CP*/42, /*#*/1, // SelectAddrMode6:$Rn #2 #3
/*124382*/          OPC_EmitMergeInputChains1_0,
/*124383*/          OPC_EmitInteger, MVT::i32, 14, 
/*124386*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124389*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPd16), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i16, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ARMvdup:{ *:[v4i16] } (ld:{ *:[i32] } addrmode6dupalign16:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>) - Complexity = 16
                    // Dst: (VLD1DUPd16:{ *:[v4i16] } addrmode6dupalign16:{ *:[i32] }:$Rn)
/*124399*/        0, /*End of Scope*/
/*124400*/      /*Scope*/ 27, /*->124428*/
/*124401*/        OPC_CheckPredicate, 60, // Predicate_load
/*124403*/        OPC_MoveParent,
/*124404*/        OPC_CheckType, MVT::v2i32,
/*124406*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124408*/        OPC_CheckComplexPat, /*CP*/43, /*#*/1, // SelectAddrMode6:$Rn #2 #3
/*124411*/        OPC_EmitMergeInputChains1_0,
/*124412*/        OPC_EmitInteger, MVT::i32, 14, 
/*124415*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124418*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPd32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (ARMvdup:{ *:[v2i32] } (ld:{ *:[i32] } addrmode6dupalign32:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                  // Dst: (VLD1DUPd32:{ *:[v2i32] } addrmode6dupalign32:{ *:[i32] }:$Rn)
/*124428*/      /*Scope*/ 60, /*->124489*/
/*124429*/        OPC_CheckPredicate, 38, // Predicate_extload
/*124431*/        OPC_Scope, 27, /*->124460*/ // 2 children in Scope
/*124433*/          OPC_CheckPredicate, 44, // Predicate_extloadi8
/*124435*/          OPC_MoveParent,
/*124436*/          OPC_CheckType, MVT::v16i8,
/*124438*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124440*/          OPC_CheckComplexPat, /*CP*/41, /*#*/1, // SelectAddrMode6:$Rn #2 #3
/*124443*/          OPC_EmitMergeInputChains1_0,
/*124444*/          OPC_EmitInteger, MVT::i32, 14, 
/*124447*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124450*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPq8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ARMvdup:{ *:[v16i8] } (ld:{ *:[i32] } addrmode6dupalignNone:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>>) - Complexity = 16
                    // Dst: (VLD1DUPq8:{ *:[v16i8] } addrmode6dupalignNone:{ *:[i32] }:$Rn)
/*124460*/        /*Scope*/ 27, /*->124488*/
/*124461*/          OPC_CheckPredicate, 39, // Predicate_extloadi16
/*124463*/          OPC_MoveParent,
/*124464*/          OPC_CheckType, MVT::v8i16,
/*124466*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124468*/          OPC_CheckComplexPat, /*CP*/42, /*#*/1, // SelectAddrMode6:$Rn #2 #3
/*124471*/          OPC_EmitMergeInputChains1_0,
/*124472*/          OPC_EmitInteger, MVT::i32, 14, 
/*124475*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124478*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPq16), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ARMvdup:{ *:[v8i16] } (ld:{ *:[i32] } addrmode6dupalign16:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>) - Complexity = 16
                    // Dst: (VLD1DUPq16:{ *:[v8i16] } addrmode6dupalign16:{ *:[i32] }:$Rn)
/*124488*/        0, /*End of Scope*/
/*124489*/      /*Scope*/ 27, /*->124517*/
/*124490*/        OPC_CheckPredicate, 60, // Predicate_load
/*124492*/        OPC_MoveParent,
/*124493*/        OPC_CheckType, MVT::v4i32,
/*124495*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124497*/        OPC_CheckComplexPat, /*CP*/43, /*#*/1, // SelectAddrMode6:$Rn #2 #3
/*124500*/        OPC_EmitMergeInputChains1_0,
/*124501*/        OPC_EmitInteger, MVT::i32, 14, 
/*124504*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124507*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPq32), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 4/*#Ops*/, 2, 3, 4, 5, 
                  // Src: (ARMvdup:{ *:[v4i32] } (ld:{ *:[i32] } addrmode6dupalign32:{ *:[i32] }:$Rn)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                  // Dst: (VLD1DUPq32:{ *:[v4i32] } addrmode6dupalign32:{ *:[i32] }:$Rn)
/*124517*/      0, /*End of Scope*/
/*124518*/    /*Scope*/ 97|128,1/*225*/, /*->124745*/
/*124520*/      OPC_RecordChild0, // #0 = $R
/*124521*/      OPC_CheckChild0Type, MVT::i32,
/*124523*/      OPC_SwitchType /*6 cases */, 17, MVT::v8i8,// ->124543
/*124526*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124528*/        OPC_EmitInteger, MVT::i32, 14, 
/*124531*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124534*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP8d), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvdup:{ *:[v8i8] } GPR:{ *:[i32] }:$R) - Complexity = 3
                  // Dst: (VDUP8d:{ *:[v8i8] } GPR:{ *:[i32] }:$R)
/*124543*/      /*SwitchType*/ 17, MVT::v4i16,// ->124562
/*124545*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124547*/        OPC_EmitInteger, MVT::i32, 14, 
/*124550*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124553*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP16d), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvdup:{ *:[v4i16] } GPR:{ *:[i32] }:$R) - Complexity = 3
                  // Dst: (VDUP16d:{ *:[v4i16] } GPR:{ *:[i32] }:$R)
/*124562*/      /*SwitchType*/ 39, MVT::v2i32,// ->124603
/*124564*/        OPC_Scope, 17, /*->124583*/ // 2 children in Scope
/*124566*/          OPC_CheckPatternPredicate, 124, // (!Subtarget->hasSlowVDUP32()) && (Subtarget->hasNEON())
/*124568*/          OPC_EmitInteger, MVT::i32, 14, 
/*124571*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124574*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP32d), 0,
                        MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvdup:{ *:[v2i32] } GPR:{ *:[i32] }:$R) - Complexity = 3
                    // Dst: (VDUP32d:{ *:[v2i32] } GPR:{ *:[i32] }:$R)
/*124583*/        /*Scope*/ 18, /*->124602*/
/*124584*/          OPC_CheckPatternPredicate, 125, // (Subtarget->hasNEON()) && (Subtarget->hasSlowVDUP32())
/*124586*/          OPC_EmitInteger, MVT::i32, 14, 
/*124589*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124592*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVDRR), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 0, 1, 2, 
                    // Src: (ARMvdup:{ *:[v2i32] } GPR:{ *:[i32] }:$R) - Complexity = 3
                    // Dst: (VMOVDRR:{ *:[v2i32] } GPR:{ *:[i32] }:$R, GPR:{ *:[i32] }:$R)
/*124602*/        0, /*End of Scope*/
/*124603*/      /*SwitchType*/ 45, MVT::v16i8,// ->124650
/*124605*/        OPC_Scope, 17, /*->124624*/ // 2 children in Scope
/*124607*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124609*/          OPC_EmitInteger, MVT::i32, 14, 
/*124612*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124615*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP8q), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$R) - Complexity = 3
                    // Dst: (VDUP8q:{ *:[v16i8] } GPR:{ *:[i32] }:$R)
/*124624*/        /*Scope*/ 24, /*->124649*/
/*124625*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*124627*/          OPC_EmitInteger, MVT::i32, 0, 
/*124630*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124633*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*124639*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VDUP8), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvdup:{ *:[v16i8] } rGPR:{ *:[i32] }:$elem) - Complexity = 3
                    // Dst: (MVE_VDUP8:{ *:[v16i8] } rGPR:{ *:[i32] }:$elem)
/*124649*/        0, /*End of Scope*/
/*124650*/      /*SwitchType*/ 45, MVT::v8i16,// ->124697
/*124652*/        OPC_Scope, 17, /*->124671*/ // 2 children in Scope
/*124654*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124656*/          OPC_EmitInteger, MVT::i32, 14, 
/*124659*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124662*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP16q), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$R) - Complexity = 3
                    // Dst: (VDUP16q:{ *:[v8i16] } GPR:{ *:[i32] }:$R)
/*124671*/        /*Scope*/ 24, /*->124696*/
/*124672*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*124674*/          OPC_EmitInteger, MVT::i32, 0, 
/*124677*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124680*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*124686*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VDUP16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvdup:{ *:[v8i16] } rGPR:{ *:[i32] }:$elem) - Complexity = 3
                    // Dst: (MVE_VDUP16:{ *:[v8i16] } rGPR:{ *:[i32] }:$elem)
/*124696*/        0, /*End of Scope*/
/*124697*/      /*SwitchType*/ 45, MVT::v4i32,// ->124744
/*124699*/        OPC_Scope, 17, /*->124718*/ // 2 children in Scope
/*124701*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124703*/          OPC_EmitInteger, MVT::i32, 14, 
/*124706*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124709*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP32q), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$R) - Complexity = 3
                    // Dst: (VDUP32q:{ *:[v4i32] } GPR:{ *:[i32] }:$R)
/*124718*/        /*Scope*/ 24, /*->124743*/
/*124719*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*124721*/          OPC_EmitInteger, MVT::i32, 0, 
/*124724*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124727*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*124733*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VDUP32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvdup:{ *:[v4i32] } rGPR:{ *:[i32] }:$elem) - Complexity = 3
                    // Dst: (MVE_VDUP32:{ *:[v4i32] } rGPR:{ *:[i32] }:$elem)
/*124743*/        0, /*End of Scope*/
/*124744*/      0, // EndSwitchType
/*124745*/    /*Scope*/ 11|128,1/*139*/, /*->124886*/
/*124747*/      OPC_MoveChild0,
/*124748*/      OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->124814
/*124752*/        OPC_RecordMemRef,
/*124753*/        OPC_RecordNode, // #0 = 'ld' chained node
/*124754*/        OPC_RecordChild1, // #1 = $addr
/*124755*/        OPC_CheckChild1Type, MVT::i32,
/*124757*/        OPC_CheckPredicate, 37, // Predicate_unindexedload
/*124759*/        OPC_CheckPredicate, 60, // Predicate_load
/*124761*/        OPC_CheckType, MVT::f32,
/*124763*/        OPC_MoveParent,
/*124764*/        OPC_SwitchType /*2 cases */, 22, MVT::v2f32,// ->124789
/*124767*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124769*/          OPC_CheckComplexPat, /*CP*/44, /*#*/1, // SelectAddrMode6:$addr #2 #3
/*124772*/          OPC_EmitMergeInputChains1_0,
/*124773*/          OPC_EmitInteger, MVT::i32, 14, 
/*124776*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124779*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPd32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ARMvdup:{ *:[v2f32] } (ld:{ *:[f32] } addrmode6dup:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                    // Dst: (VLD1DUPd32:{ *:[v2f32] } addrmode6:{ *:[i32] }:$addr)
/*124789*/        /*SwitchType*/ 22, MVT::v4f32,// ->124813
/*124791*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124793*/          OPC_CheckComplexPat, /*CP*/44, /*#*/1, // SelectAddrMode6:$addr #2 #3
/*124796*/          OPC_EmitMergeInputChains1_0,
/*124797*/          OPC_EmitInteger, MVT::i32, 14, 
/*124800*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124803*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VLD1DUPq32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 4/*#Ops*/, 2, 3, 4, 5, 
                    // Src: (ARMvdup:{ *:[v4f32] } (ld:{ *:[f32] } addrmode6dup:{ *:[i32] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 16
                    // Dst: (VLD1DUPq32:{ *:[v4f32] } addrmode6:{ *:[i32] }:$addr)
/*124813*/        0, // EndSwitchType
/*124814*/      /*SwitchOpcode*/ 68, TARGET_VAL(ISD::BITCAST),// ->124885
/*124817*/        OPC_RecordChild0, // #0 = $R
/*124818*/        OPC_CheckChild0Type, MVT::i32,
/*124820*/        OPC_CheckType, MVT::f32,
/*124822*/        OPC_MoveParent,
/*124823*/        OPC_SwitchType /*2 cases */, 39, MVT::v2f32,// ->124865
/*124826*/          OPC_Scope, 17, /*->124845*/ // 2 children in Scope
/*124828*/            OPC_CheckPatternPredicate, 124, // (!Subtarget->hasSlowVDUP32()) && (Subtarget->hasNEON())
/*124830*/            OPC_EmitInteger, MVT::i32, 14, 
/*124833*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124836*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP32d), 0,
                          MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (ARMvdup:{ *:[v2f32] } (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$R)) - Complexity = 6
                      // Dst: (VDUP32d:{ *:[v2f32] } GPR:{ *:[i32] }:$R)
/*124845*/          /*Scope*/ 18, /*->124864*/
/*124846*/            OPC_CheckPatternPredicate, 125, // (Subtarget->hasNEON()) && (Subtarget->hasSlowVDUP32())
/*124848*/            OPC_EmitInteger, MVT::i32, 14, 
/*124851*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124854*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVDRR), 0,
                          MVT::v2f32, 4/*#Ops*/, 0, 0, 1, 2, 
                      // Src: (ARMvdup:{ *:[v2f32] } (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$R)) - Complexity = 6
                      // Dst: (VMOVDRR:{ *:[v2f32] } GPR:{ *:[i32] }:$R, GPR:{ *:[i32] }:$R)
/*124864*/          0, /*End of Scope*/
/*124865*/        /*SwitchType*/ 17, MVT::v4f32,// ->124884
/*124867*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124869*/          OPC_EmitInteger, MVT::i32, 14, 
/*124872*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124875*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUP32q), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvdup:{ *:[v4f32] } (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$R)) - Complexity = 6
                    // Dst: (VDUP32q:{ *:[v4f32] } GPR:{ *:[i32] }:$R)
/*124884*/        0, // EndSwitchType
/*124885*/      0, // EndSwitchOpcode
/*124886*/    /*Scope*/ 127|128,1/*255*/, /*->125143*/
/*124888*/      OPC_RecordChild0, // #0 = $elem
/*124889*/      OPC_Scope, 125, /*->125016*/ // 2 children in Scope
/*124891*/        OPC_CheckChild0Type, MVT::f32,
/*124893*/        OPC_SwitchType /*2 cases */, 78, MVT::v4f32,// ->124974
/*124896*/          OPC_Scope, 35, /*->124933*/ // 2 children in Scope
/*124898*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*124900*/            OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*124903*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*124911*/            OPC_EmitInteger, MVT::i32, 0, 
/*124914*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124917*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #5
/*124923*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VDUP32), 0,
                          MVT::v4f32, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$elem) - Complexity = 3
                      // Dst: (MVE_VDUP32:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$elem, rGPR:{ *:[i32] }))
/*124933*/          /*Scope*/ 39, /*->124973*/
/*124934*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124936*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v2f32, 0/*#Ops*/,  // Results = #1
/*124942*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*124945*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v2f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*124954*/            OPC_EmitInteger, MVT::i32, 0, 
/*124957*/            OPC_EmitInteger, MVT::i32, 14, 
/*124960*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*124963*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32q), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 4, 5, 6, 
                      // Src: (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VDUPLN32q:{ *:[v4f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$src, ssub_0:{ *:[i32] }), 0:{ *:[i32] })
/*124973*/          0, /*End of Scope*/
/*124974*/        /*SwitchType*/ 39, MVT::v2f32,// ->125015
/*124976*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*124978*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f32, 0/*#Ops*/,  // Results = #1
/*124984*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*124987*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v2f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*124996*/          OPC_EmitInteger, MVT::i32, 0, 
/*124999*/          OPC_EmitInteger, MVT::i32, 14, 
/*125002*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125005*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32d), 0,
                        MVT::v2f32, 4/*#Ops*/, 3, 4, 5, 6, 
                    // Src: (ARMvdup:{ *:[v2f32] } SPR:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VDUPLN32d:{ *:[v2f32] } (INSERT_SUBREG:{ *:[v2f32] } (IMPLICIT_DEF:{ *:[v2f32] }), SPR:{ *:[f32] }:$src, ssub_0:{ *:[i32] }), 0:{ *:[i32] })
/*125015*/        0, // EndSwitchType
/*125016*/      /*Scope*/ 125, /*->125142*/
/*125017*/        OPC_CheckChild0Type, MVT::f16,
/*125019*/        OPC_SwitchType /*2 cases */, 78, MVT::v8f16,// ->125100
/*125022*/          OPC_Scope, 35, /*->125059*/ // 2 children in Scope
/*125024*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*125026*/            OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*125029*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*125037*/            OPC_EmitInteger, MVT::i32, 0, 
/*125040*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125043*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i32, 0/*#Ops*/,  // Results = #5
/*125049*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VDUP16), 0,
                          MVT::v8f16, 4/*#Ops*/, 2, 3, 4, 5, 
                      // Src: (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$elem) - Complexity = 3
                      // Dst: (MVE_VDUP16:{ *:[v8f16] } (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$elem, rGPR:{ *:[i32] }))
/*125059*/          /*Scope*/ 39, /*->125099*/
/*125060*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125062*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4f16, 0/*#Ops*/,  // Results = #1
/*125068*/            OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*125071*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v4f16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*125080*/            OPC_EmitInteger, MVT::i32, 0, 
/*125083*/            OPC_EmitInteger, MVT::i32, 14, 
/*125086*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125089*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN16q), 0,
                          MVT::v8f16, 4/*#Ops*/, 3, 4, 5, 6, 
                      // Src: (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$src) - Complexity = 3
                      // Dst: (VDUPLN16q:{ *:[v8f16] } (INSERT_SUBREG:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), HPR:{ *:[f16] }:$src, ssub_0:{ *:[i32] }), 0:{ *:[i32] })
/*125099*/          0, /*End of Scope*/
/*125100*/        /*SwitchType*/ 39, MVT::v4f16,// ->125141
/*125102*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125104*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f16, 0/*#Ops*/,  // Results = #1
/*125110*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*125113*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*125122*/          OPC_EmitInteger, MVT::i32, 0, 
/*125125*/          OPC_EmitInteger, MVT::i32, 14, 
/*125128*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125131*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN16d), 0,
                        MVT::v4f16, 4/*#Ops*/, 3, 4, 5, 6, 
                    // Src: (ARMvdup:{ *:[v4f16] } HPR:{ *:[f16] }:$src) - Complexity = 3
                    // Dst: (VDUPLN16d:{ *:[v4f16] } (INSERT_SUBREG:{ *:[v4f16] } (IMPLICIT_DEF:{ *:[v4f16] }), HPR:{ *:[f16] }:$src, ssub_0:{ *:[i32] }), 0:{ *:[i32] })
/*125141*/        0, // EndSwitchType
/*125142*/      0, /*End of Scope*/
/*125143*/    0, /*End of Scope*/
/*125144*/  /*SwitchOpcode*/ 15|128,4/*527*/, TARGET_VAL(ISD::TRUNCATE),// ->125675
/*125148*/    OPC_Scope, 116|128,2/*372*/, /*->125523*/ // 2 children in Scope
/*125151*/      OPC_MoveChild0,
/*125152*/      OPC_SwitchOpcode /*2 cases */, 13|128,2/*269*/, TARGET_VAL(ARMISD::VSHRuIMM),// ->125426
/*125157*/        OPC_Scope, 43|128,1/*171*/, /*->125331*/ // 2 children in Scope
/*125160*/          OPC_MoveChild0,
/*125161*/          OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(ISD::ADD),// ->125246
/*125165*/            OPC_RecordChild0, // #0 = $Vn
/*125166*/            OPC_RecordChild1, // #1 = $Vm
/*125167*/            OPC_MoveParent,
/*125168*/            OPC_Scope, 25, /*->125195*/ // 3 children in Scope
/*125170*/              OPC_CheckChild1Integer, 8, 
/*125172*/              OPC_CheckType, MVT::v8i16,
/*125174*/              OPC_MoveParent,
/*125175*/              OPC_CheckType, MVT::v8i8,
/*125177*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125179*/              OPC_EmitInteger, MVT::i32, 14, 
/*125182*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125185*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDHNv8i8), 0,
                            MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (trunc:{ *:[v8i8] } (ARMvshruImm:{ *:[v8i16] } (add:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), 8:{ *:[i32] })) - Complexity = 14
                        // Dst: (VADDHNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/*125195*/            /*Scope*/ 25, /*->125221*/
/*125196*/              OPC_CheckChild1Integer, 16, 
/*125198*/              OPC_CheckType, MVT::v4i32,
/*125200*/              OPC_MoveParent,
/*125201*/              OPC_CheckType, MVT::v4i16,
/*125203*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125205*/              OPC_EmitInteger, MVT::i32, 14, 
/*125208*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125211*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDHNv4i16), 0,
                            MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (trunc:{ *:[v4i16] } (ARMvshruImm:{ *:[v4i32] } (add:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), 16:{ *:[i32] })) - Complexity = 14
                        // Dst: (VADDHNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*125221*/            /*Scope*/ 23, /*->125245*/
/*125222*/              OPC_CheckChild1Integer, 32, 
/*125224*/              OPC_MoveParent,
/*125225*/              OPC_CheckType, MVT::v2i32,
/*125227*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125229*/              OPC_EmitInteger, MVT::i32, 14, 
/*125232*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125235*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VADDHNv2i32), 0,
                            MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (trunc:{ *:[v2i32] } (ARMvshruImm:{ *:[v2i64] } (add:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm), 32:{ *:[i32] })) - Complexity = 14
                        // Dst: (VADDHNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*125245*/            0, /*End of Scope*/
/*125246*/          /*SwitchOpcode*/ 81, TARGET_VAL(ISD::SUB),// ->125330
/*125249*/            OPC_RecordChild0, // #0 = $Vn
/*125250*/            OPC_RecordChild1, // #1 = $Vm
/*125251*/            OPC_MoveParent,
/*125252*/            OPC_Scope, 25, /*->125279*/ // 3 children in Scope
/*125254*/              OPC_CheckChild1Integer, 8, 
/*125256*/              OPC_CheckType, MVT::v8i16,
/*125258*/              OPC_MoveParent,
/*125259*/              OPC_CheckType, MVT::v8i8,
/*125261*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125263*/              OPC_EmitInteger, MVT::i32, 14, 
/*125266*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125269*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBHNv8i8), 0,
                            MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (trunc:{ *:[v8i8] } (ARMvshruImm:{ *:[v8i16] } (sub:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm), 8:{ *:[i32] })) - Complexity = 14
                        // Dst: (VSUBHNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/*125279*/            /*Scope*/ 25, /*->125305*/
/*125280*/              OPC_CheckChild1Integer, 16, 
/*125282*/              OPC_CheckType, MVT::v4i32,
/*125284*/              OPC_MoveParent,
/*125285*/              OPC_CheckType, MVT::v4i16,
/*125287*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125289*/              OPC_EmitInteger, MVT::i32, 14, 
/*125292*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125295*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBHNv4i16), 0,
                            MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (trunc:{ *:[v4i16] } (ARMvshruImm:{ *:[v4i32] } (sub:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm), 16:{ *:[i32] })) - Complexity = 14
                        // Dst: (VSUBHNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*125305*/            /*Scope*/ 23, /*->125329*/
/*125306*/              OPC_CheckChild1Integer, 32, 
/*125308*/              OPC_MoveParent,
/*125309*/              OPC_CheckType, MVT::v2i32,
/*125311*/              OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125313*/              OPC_EmitInteger, MVT::i32, 14, 
/*125316*/              OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125319*/              OPC_MorphNodeTo1, TARGET_VAL(ARM::VSUBHNv2i32), 0,
                            MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (trunc:{ *:[v2i32] } (ARMvshruImm:{ *:[v2i64] } (sub:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm), 32:{ *:[i32] })) - Complexity = 14
                        // Dst: (VSUBHNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*125329*/            0, /*End of Scope*/
/*125330*/          0, // EndSwitchOpcode
/*125331*/        /*Scope*/ 93, /*->125425*/
/*125332*/          OPC_RecordChild0, // #0 = $Vn
/*125333*/          OPC_RecordChild1, // #1 = $amt
/*125334*/          OPC_MoveChild1,
/*125335*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*125338*/          OPC_Scope, 28, /*->125368*/ // 3 children in Scope
/*125340*/            OPC_CheckPredicate, 34, // Predicate_shr_imm8
/*125342*/            OPC_MoveParent,
/*125343*/            OPC_CheckType, MVT::v8i16,
/*125345*/            OPC_MoveParent,
/*125346*/            OPC_CheckType, MVT::v8i8,
/*125348*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125350*/            OPC_EmitConvertToTarget, 1,
/*125352*/            OPC_EmitInteger, MVT::i32, 14, 
/*125355*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125358*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRNv8i8), 0,
                          MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (trunc:{ *:[v8i8] } (ARMvshruImm:{ *:[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)
/*125368*/          /*Scope*/ 28, /*->125397*/
/*125369*/            OPC_CheckPredicate, 35, // Predicate_shr_imm16
/*125371*/            OPC_MoveParent,
/*125372*/            OPC_CheckType, MVT::v4i32,
/*125374*/            OPC_MoveParent,
/*125375*/            OPC_CheckType, MVT::v4i16,
/*125377*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125379*/            OPC_EmitConvertToTarget, 1,
/*125381*/            OPC_EmitInteger, MVT::i32, 14, 
/*125384*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125387*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRNv4i16), 0,
                          MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (trunc:{ *:[v4i16] } (ARMvshruImm:{ *:[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)
/*125397*/          /*Scope*/ 26, /*->125424*/
/*125398*/            OPC_CheckPredicate, 1, // Predicate_shr_imm32
/*125400*/            OPC_MoveParent,
/*125401*/            OPC_MoveParent,
/*125402*/            OPC_CheckType, MVT::v2i32,
/*125404*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125406*/            OPC_EmitConvertToTarget, 1,
/*125408*/            OPC_EmitInteger, MVT::i32, 14, 
/*125411*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125414*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRNv2i32), 0,
                          MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                      // Src: (trunc:{ *:[v2i32] } (ARMvshruImm:{ *:[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)
/*125424*/          0, /*End of Scope*/
/*125425*/        0, /*End of Scope*/
/*125426*/      /*SwitchOpcode*/ 93, TARGET_VAL(ARMISD::VSHRsIMM),// ->125522
/*125429*/        OPC_RecordChild0, // #0 = $Vm
/*125430*/        OPC_RecordChild1, // #1 = $SIMM
/*125431*/        OPC_MoveChild1,
/*125432*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*125435*/        OPC_Scope, 28, /*->125465*/ // 3 children in Scope
/*125437*/          OPC_CheckPredicate, 34, // Predicate_shr_imm8
/*125439*/          OPC_MoveParent,
/*125440*/          OPC_CheckType, MVT::v8i16,
/*125442*/          OPC_MoveParent,
/*125443*/          OPC_CheckType, MVT::v8i8,
/*125445*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125447*/          OPC_EmitConvertToTarget, 1,
/*125449*/          OPC_EmitInteger, MVT::i32, 14, 
/*125452*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125455*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRNv8i8), 0,
                        MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (trunc:{ *:[v8i8] } (ARMvshrsImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM)) - Complexity = 10
                    // Dst: (VSHRNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*125465*/        /*Scope*/ 28, /*->125494*/
/*125466*/          OPC_CheckPredicate, 35, // Predicate_shr_imm16
/*125468*/          OPC_MoveParent,
/*125469*/          OPC_CheckType, MVT::v4i32,
/*125471*/          OPC_MoveParent,
/*125472*/          OPC_CheckType, MVT::v4i16,
/*125474*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125476*/          OPC_EmitConvertToTarget, 1,
/*125478*/          OPC_EmitInteger, MVT::i32, 14, 
/*125481*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125484*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRNv4i16), 0,
                        MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (trunc:{ *:[v4i16] } (ARMvshrsImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM)) - Complexity = 10
                    // Dst: (VSHRNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*125494*/        /*Scope*/ 26, /*->125521*/
/*125495*/          OPC_CheckPredicate, 1, // Predicate_shr_imm32
/*125497*/          OPC_MoveParent,
/*125498*/          OPC_MoveParent,
/*125499*/          OPC_CheckType, MVT::v2i32,
/*125501*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125503*/          OPC_EmitConvertToTarget, 1,
/*125505*/          OPC_EmitInteger, MVT::i32, 14, 
/*125508*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125511*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRNv2i32), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (trunc:{ *:[v2i32] } (ARMvshrsImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM)) - Complexity = 10
                    // Dst: (VSHRNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*125521*/        0, /*End of Scope*/
/*125522*/      0, // EndSwitchOpcode
/*125523*/    /*Scope*/ 21|128,1/*149*/, /*->125674*/
/*125525*/      OPC_RecordChild0, // #0 = $Vm
/*125526*/      OPC_SwitchType /*6 cases */, 19, MVT::v8i8,// ->125548
/*125529*/        OPC_CheckChild0Type, MVT::v8i16,
/*125531*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125533*/        OPC_EmitInteger, MVT::i32, 14, 
/*125536*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125539*/        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)
/*125548*/      /*SwitchType*/ 19, MVT::v4i16,// ->125569
/*125550*/        OPC_CheckChild0Type, MVT::v4i32,
/*125552*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125554*/        OPC_EmitInteger, MVT::i32, 14, 
/*125557*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125560*/        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)
/*125569*/      /*SwitchType*/ 17, MVT::v2i32,// ->125588
/*125571*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125573*/        OPC_EmitInteger, MVT::i32, 14, 
/*125576*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125579*/        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)
/*125588*/      /*SwitchType*/ 25, MVT::v16i1,// ->125615
/*125590*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*125592*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*125595*/        OPC_EmitInteger, MVT::i32, 1, 
/*125598*/        OPC_EmitInteger, MVT::i32, 0, 
/*125601*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125604*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                      MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (trunc:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1) - Complexity = 3
                  // Dst: (MVE_VCMPi32r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
/*125615*/      /*SwitchType*/ 27, MVT::v8i1,// ->125644
/*125617*/        OPC_CheckChild0Type, MVT::v8i16,
/*125619*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*125621*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*125624*/        OPC_EmitInteger, MVT::i32, 1, 
/*125627*/        OPC_EmitInteger, MVT::i32, 0, 
/*125630*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125633*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                      MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (trunc:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1) - Complexity = 3
                  // Dst: (MVE_VCMPi32r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
/*125644*/      /*SwitchType*/ 27, MVT::v4i1,// ->125673
/*125646*/        OPC_CheckChild0Type, MVT::v4i32,
/*125648*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*125650*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*125653*/        OPC_EmitInteger, MVT::i32, 1, 
/*125656*/        OPC_EmitInteger, MVT::i32, 0, 
/*125659*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125662*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                      MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (trunc:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1) - Complexity = 3
                  // Dst: (MVE_VCMPi32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
/*125673*/      0, // EndSwitchType
/*125674*/    0, /*End of Scope*/
/*125675*/  /*SwitchOpcode*/ 27|128,2/*283*/, TARGET_VAL(ISD::ABS),// ->125962
/*125679*/    OPC_Scope, 77, /*->125758*/ // 2 children in Scope
/*125681*/      OPC_MoveChild0,
/*125682*/      OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/*125685*/      OPC_MoveChild0,
/*125686*/      OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/*125689*/      OPC_RecordChild0, // #0 = $opA
/*125690*/      OPC_Scope, 32, /*->125724*/ // 2 children in Scope
/*125692*/        OPC_CheckChild0Type, MVT::v8i8,
/*125694*/        OPC_MoveParent,
/*125695*/        OPC_MoveChild1,
/*125696*/        OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/*125699*/        OPC_RecordChild0, // #1 = $opB
/*125700*/        OPC_CheckChild0Type, MVT::v8i8,
/*125702*/        OPC_MoveParent,
/*125703*/        OPC_MoveParent,
/*125704*/        OPC_CheckType, MVT::v8i16,
/*125706*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125708*/        OPC_EmitInteger, MVT::i32, 14, 
/*125711*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125714*/        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)
/*125724*/      /*Scope*/ 32, /*->125757*/
/*125725*/        OPC_CheckChild0Type, MVT::v4i16,
/*125727*/        OPC_MoveParent,
/*125728*/        OPC_MoveChild1,
/*125729*/        OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/*125732*/        OPC_RecordChild0, // #1 = $opB
/*125733*/        OPC_CheckChild0Type, MVT::v4i16,
/*125735*/        OPC_MoveParent,
/*125736*/        OPC_MoveParent,
/*125737*/        OPC_CheckType, MVT::v4i32,
/*125739*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125741*/        OPC_EmitInteger, MVT::i32, 14, 
/*125744*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125747*/        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)
/*125757*/      0, /*End of Scope*/
/*125758*/    /*Scope*/ 73|128,1/*201*/, /*->125961*/
/*125760*/      OPC_RecordChild0, // #0 = $Vm
/*125761*/      OPC_SwitchType /*6 cases */, 17, MVT::v8i8,// ->125781
/*125764*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125766*/        OPC_EmitInteger, MVT::i32, 14, 
/*125769*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125772*/        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)
/*125781*/      /*SwitchType*/ 17, MVT::v4i16,// ->125800
/*125783*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125785*/        OPC_EmitInteger, MVT::i32, 14, 
/*125788*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125791*/        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)
/*125800*/      /*SwitchType*/ 17, MVT::v2i32,// ->125819
/*125802*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125804*/        OPC_EmitInteger, MVT::i32, 14, 
/*125807*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125810*/        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)
/*125819*/      /*SwitchType*/ 45, MVT::v16i8,// ->125866
/*125821*/        OPC_Scope, 17, /*->125840*/ // 2 children in Scope
/*125823*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125825*/          OPC_EmitInteger, MVT::i32, 14, 
/*125828*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125831*/          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)
/*125840*/        /*Scope*/ 24, /*->125865*/
/*125841*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*125843*/          OPC_EmitInteger, MVT::i32, 0, 
/*125846*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125849*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*125855*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABSs8), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (abs:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$v) - Complexity = 3
                    // Dst: (MVE_VABSs8:{ *:[v16i8] } ?:{ *:[v16i8] }:$v)
/*125865*/        0, /*End of Scope*/
/*125866*/      /*SwitchType*/ 45, MVT::v8i16,// ->125913
/*125868*/        OPC_Scope, 17, /*->125887*/ // 2 children in Scope
/*125870*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125872*/          OPC_EmitInteger, MVT::i32, 14, 
/*125875*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125878*/          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)
/*125887*/        /*Scope*/ 24, /*->125912*/
/*125888*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*125890*/          OPC_EmitInteger, MVT::i32, 0, 
/*125893*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125896*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*125902*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABSs16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (abs:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$v) - Complexity = 3
                    // Dst: (MVE_VABSs16:{ *:[v8i16] } ?:{ *:[v8i16] }:$v)
/*125912*/        0, /*End of Scope*/
/*125913*/      /*SwitchType*/ 45, MVT::v4i32,// ->125960
/*125915*/        OPC_Scope, 17, /*->125934*/ // 2 children in Scope
/*125917*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125919*/          OPC_EmitInteger, MVT::i32, 14, 
/*125922*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125925*/          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)
/*125934*/        /*Scope*/ 24, /*->125959*/
/*125935*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*125937*/          OPC_EmitInteger, MVT::i32, 0, 
/*125940*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125943*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*125949*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VABSs32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (abs:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$v) - Complexity = 3
                    // Dst: (MVE_VABSs32:{ *:[v4i32] } ?:{ *:[v4i32] }:$v)
/*125959*/        0, /*End of Scope*/
/*125960*/      0, // EndSwitchType
/*125961*/    0, /*End of Scope*/
/*125962*/  /*SwitchOpcode*/ 85|128,3/*469*/, TARGET_VAL(ISD::ZERO_EXTEND),// ->126435
/*125966*/    OPC_Scope, 62|128,1/*190*/, /*->126159*/ // 2 children in Scope
/*125969*/      OPC_MoveChild0,
/*125970*/      OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
/*125973*/      OPC_Scope, 91, /*->126066*/ // 2 children in Scope
/*125975*/        OPC_CheckChild0Integer, 126|128,12/*1662*/, 
/*125978*/        OPC_RecordChild1, // #0 = $Vn
/*125979*/        OPC_Scope, 28, /*->126009*/ // 3 children in Scope
/*125981*/          OPC_CheckChild1Type, MVT::v8i8,
/*125983*/          OPC_RecordChild2, // #1 = $Vm
/*125984*/          OPC_CheckChild2Type, MVT::v8i8,
/*125986*/          OPC_CheckType, MVT::v8i8,
/*125988*/          OPC_MoveParent,
/*125989*/          OPC_CheckType, MVT::v8i16,
/*125991*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*125993*/          OPC_EmitInteger, MVT::i32, 14, 
/*125996*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*125999*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLsv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 1662:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) - Complexity = 11
                    // Dst: (VABDLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/*126009*/        /*Scope*/ 28, /*->126038*/
/*126010*/          OPC_CheckChild1Type, MVT::v4i16,
/*126012*/          OPC_RecordChild2, // #1 = $Vm
/*126013*/          OPC_CheckChild2Type, MVT::v4i16,
/*126015*/          OPC_CheckType, MVT::v4i16,
/*126017*/          OPC_MoveParent,
/*126018*/          OPC_CheckType, MVT::v4i32,
/*126020*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126022*/          OPC_EmitInteger, MVT::i32, 14, 
/*126025*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126028*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLsv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 1662:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 11
                    // Dst: (VABDLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/*126038*/        /*Scope*/ 26, /*->126065*/
/*126039*/          OPC_CheckChild1Type, MVT::v2i32,
/*126041*/          OPC_RecordChild2, // #1 = $Vm
/*126042*/          OPC_CheckChild2Type, MVT::v2i32,
/*126044*/          OPC_MoveParent,
/*126045*/          OPC_CheckType, MVT::v2i64,
/*126047*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126049*/          OPC_EmitInteger, MVT::i32, 14, 
/*126052*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126055*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLsv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 1662:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 11
                    // Dst: (VABDLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*126065*/        0, /*End of Scope*/
/*126066*/      /*Scope*/ 91, /*->126158*/
/*126067*/        OPC_CheckChild0Integer, 127|128,12/*1663*/, 
/*126070*/        OPC_RecordChild1, // #0 = $Vn
/*126071*/        OPC_Scope, 28, /*->126101*/ // 3 children in Scope
/*126073*/          OPC_CheckChild1Type, MVT::v8i8,
/*126075*/          OPC_RecordChild2, // #1 = $Vm
/*126076*/          OPC_CheckChild2Type, MVT::v8i8,
/*126078*/          OPC_CheckType, MVT::v8i8,
/*126080*/          OPC_MoveParent,
/*126081*/          OPC_CheckType, MVT::v8i16,
/*126083*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126085*/          OPC_EmitInteger, MVT::i32, 14, 
/*126088*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126091*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (zext:{ *:[v8i16] } (intrinsic_wo_chain:{ *:[v8i8] } 1663:{ *:[iPTR] }, DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)) - Complexity = 11
                    // Dst: (VABDLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/*126101*/        /*Scope*/ 28, /*->126130*/
/*126102*/          OPC_CheckChild1Type, MVT::v4i16,
/*126104*/          OPC_RecordChild2, // #1 = $Vm
/*126105*/          OPC_CheckChild2Type, MVT::v4i16,
/*126107*/          OPC_CheckType, MVT::v4i16,
/*126109*/          OPC_MoveParent,
/*126110*/          OPC_CheckType, MVT::v4i32,
/*126112*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126114*/          OPC_EmitInteger, MVT::i32, 14, 
/*126117*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126120*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (zext:{ *:[v4i32] } (intrinsic_wo_chain:{ *:[v4i16] } 1663:{ *:[iPTR] }, DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)) - Complexity = 11
                    // Dst: (VABDLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/*126130*/        /*Scope*/ 26, /*->126157*/
/*126131*/          OPC_CheckChild1Type, MVT::v2i32,
/*126133*/          OPC_RecordChild2, // #1 = $Vm
/*126134*/          OPC_CheckChild2Type, MVT::v2i32,
/*126136*/          OPC_MoveParent,
/*126137*/          OPC_CheckType, MVT::v2i64,
/*126139*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126141*/          OPC_EmitInteger, MVT::i32, 14, 
/*126144*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126147*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VABDLuv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (zext:{ *:[v2i64] } (intrinsic_wo_chain:{ *:[v2i32] } 1663:{ *:[iPTR] }, DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)) - Complexity = 11
                    // Dst: (VABDLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*126157*/        0, /*End of Scope*/
/*126158*/      0, /*End of Scope*/
/*126159*/    /*Scope*/ 17|128,2/*273*/, /*->126434*/
/*126161*/      OPC_RecordChild0, // #0 = $Vm
/*126162*/      OPC_SwitchType /*4 cases */, 90, MVT::v8i16,// ->126255
/*126165*/        OPC_Scope, 19, /*->126186*/ // 2 children in Scope
/*126167*/          OPC_CheckChild0Type, MVT::v8i8,
/*126169*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126171*/          OPC_EmitInteger, MVT::i32, 14, 
/*126174*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126177*/          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)
/*126186*/        /*Scope*/ 67, /*->126254*/
/*126187*/          OPC_CheckChild0Type, MVT::v8i1,
/*126189*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*126191*/          OPC_EmitInteger, MVT::i32, 1, 
/*126194*/          OPC_EmitInteger, MVT::i32, 0, 
/*126197*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126200*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*126206*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi16), 0,
                        MVT::v16i8, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*126216*/          OPC_EmitInteger, MVT::i32, 0, 
/*126219*/          OPC_EmitInteger, MVT::i32, 0, 
/*126222*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126225*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #9
/*126231*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi16), 0,
                        MVT::v16i8, 4/*#Ops*/, 6, 7, 8, 9,  // Results = #10
/*126241*/          OPC_EmitInteger, MVT::i32, 0, 
/*126244*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                        MVT::v8i16, 4/*#Ops*/, 5, 10, 11, 0, 
                    // Src: (zext:{ *:[v8i16] } VCCR:{ *:[v8i1] }:$pred) - Complexity = 3
                    // Dst: (MVE_VPSEL:{ *:[v8i16] } (MVE_VMOVimmi16:{ *:[v16i8] } 1:{ *:[i32] }), (MVE_VMOVimmi16:{ *:[v16i8] } 0:{ *:[i32] }), 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/*126254*/        0, /*End of Scope*/
/*126255*/      /*SwitchType*/ 90, MVT::v4i32,// ->126347
/*126257*/        OPC_Scope, 19, /*->126278*/ // 2 children in Scope
/*126259*/          OPC_CheckChild0Type, MVT::v4i16,
/*126261*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126263*/          OPC_EmitInteger, MVT::i32, 14, 
/*126266*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126269*/          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)
/*126278*/        /*Scope*/ 67, /*->126346*/
/*126279*/          OPC_CheckChild0Type, MVT::v4i1,
/*126281*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*126283*/          OPC_EmitInteger, MVT::i32, 1, 
/*126286*/          OPC_EmitInteger, MVT::i32, 0, 
/*126289*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126292*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*126298*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi32), 0,
                        MVT::v16i8, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*126308*/          OPC_EmitInteger, MVT::i32, 0, 
/*126311*/          OPC_EmitInteger, MVT::i32, 0, 
/*126314*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126317*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #9
/*126323*/          OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi32), 0,
                        MVT::v16i8, 4/*#Ops*/, 6, 7, 8, 9,  // Results = #10
/*126333*/          OPC_EmitInteger, MVT::i32, 0, 
/*126336*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                        MVT::v4i32, 4/*#Ops*/, 5, 10, 11, 0, 
                    // Src: (zext:{ *:[v4i32] } VCCR:{ *:[v4i1] }:$pred) - Complexity = 3
                    // Dst: (MVE_VPSEL:{ *:[v4i32] } (MVE_VMOVimmi32:{ *:[v16i8] } 1:{ *:[i32] }), (MVE_VMOVimmi32:{ *:[v16i8] } 0:{ *:[i32] }), 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*126346*/        0, /*End of Scope*/
/*126347*/      /*SwitchType*/ 17, MVT::v2i64,// ->126366
/*126349*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126351*/        OPC_EmitInteger, MVT::i32, 14, 
/*126354*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126357*/        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)
/*126366*/      /*SwitchType*/ 65, MVT::v16i8,// ->126433
/*126368*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*126370*/        OPC_EmitInteger, MVT::i32, 1, 
/*126373*/        OPC_EmitInteger, MVT::i32, 0, 
/*126376*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126379*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*126385*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi8), 0,
                      MVT::v16i8, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*126395*/        OPC_EmitInteger, MVT::i32, 0, 
/*126398*/        OPC_EmitInteger, MVT::i32, 0, 
/*126401*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126404*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #9
/*126410*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi8), 0,
                      MVT::v16i8, 4/*#Ops*/, 6, 7, 8, 9,  // Results = #10
/*126420*/        OPC_EmitInteger, MVT::i32, 0, 
/*126423*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                      MVT::v16i8, 4/*#Ops*/, 5, 10, 11, 0, 
                  // Src: (zext:{ *:[v16i8] } VCCR:{ *:[v16i1] }:$pred) - Complexity = 3
                  // Dst: (MVE_VPSEL:{ *:[v16i8] } (MVE_VMOVimmi8:{ *:[v16i8] } 1:{ *:[i32] }), (MVE_VMOVimmi8:{ *:[v16i8] } 0:{ *:[i32] }), 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred)
/*126433*/      0, // EndSwitchType
/*126434*/    0, /*End of Scope*/
/*126435*/  /*SwitchOpcode*/ 4|128,6/*772*/, TARGET_VAL(ARMISD::VSHLIMM),// ->127211
/*126439*/    OPC_Scope, 94|128,3/*478*/, /*->126920*/ // 2 children in Scope
/*126442*/      OPC_MoveChild0,
/*126443*/      OPC_SwitchOpcode /*3 cases */, 60|128,1/*188*/, TARGET_VAL(ISD::ZERO_EXTEND),// ->126636
/*126448*/        OPC_RecordChild0, // #0 = $Rn
/*126449*/        OPC_Scope, 28, /*->126479*/ // 6 children in Scope
/*126451*/          OPC_CheckChild0Type, MVT::v8i8,
/*126453*/          OPC_MoveParent,
/*126454*/          OPC_CheckChild1Integer, 8, 
/*126456*/          OPC_CheckType, MVT::v8i16,
/*126458*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126460*/          OPC_EmitInteger, MVT::i32, 8, 
/*126463*/          OPC_EmitInteger, MVT::i32, 14, 
/*126466*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126469*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi8), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshlImm:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Rn), 8:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi8:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Rn, 8:{ *:[i32] })
/*126479*/        /*Scope*/ 28, /*->126508*/
/*126480*/          OPC_CheckChild0Type, MVT::v4i16,
/*126482*/          OPC_MoveParent,
/*126483*/          OPC_CheckChild1Integer, 16, 
/*126485*/          OPC_CheckType, MVT::v4i32,
/*126487*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126489*/          OPC_EmitInteger, MVT::i32, 16, 
/*126492*/          OPC_EmitInteger, MVT::i32, 14, 
/*126495*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126498*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi16), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshlImm:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Rn), 16:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi16:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Rn, 16:{ *:[i32] })
/*126508*/        /*Scope*/ 26, /*->126535*/
/*126509*/          OPC_MoveParent,
/*126510*/          OPC_CheckChild1Integer, 32, 
/*126512*/          OPC_CheckType, MVT::v2i64,
/*126514*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126516*/          OPC_EmitInteger, MVT::i32, 32, 
/*126519*/          OPC_EmitInteger, MVT::i32, 14, 
/*126522*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126525*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi32), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshlImm:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Rn), 32:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi32:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Rn, 32:{ *:[i32] })
/*126535*/        /*Scope*/ 33, /*->126569*/
/*126536*/          OPC_CheckChild0Type, MVT::v8i8,
/*126538*/          OPC_MoveParent,
/*126539*/          OPC_RecordChild1, // #1 = $SIMM
/*126540*/          OPC_MoveChild1,
/*126541*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*126544*/          OPC_CheckPredicate, 106, // Predicate_imm1_7
/*126546*/          OPC_MoveParent,
/*126547*/          OPC_CheckType, MVT::v8i16,
/*126549*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126551*/          OPC_EmitConvertToTarget, 1,
/*126553*/          OPC_EmitInteger, MVT::i32, 14, 
/*126556*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126559*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLuv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMvshlImm:{ *:[v8i16] } (zext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm), (imm:{ *:[i32] })<<P:Predicate_imm1_7>>:$SIMM) - Complexity = 10
                    // Dst: (VSHLLuv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*126569*/        /*Scope*/ 33, /*->126603*/
/*126570*/          OPC_CheckChild0Type, MVT::v4i16,
/*126572*/          OPC_MoveParent,
/*126573*/          OPC_RecordChild1, // #1 = $SIMM
/*126574*/          OPC_MoveChild1,
/*126575*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*126578*/          OPC_CheckPredicate, 2, // Predicate_imm1_15
/*126580*/          OPC_MoveParent,
/*126581*/          OPC_CheckType, MVT::v4i32,
/*126583*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126585*/          OPC_EmitConvertToTarget, 1,
/*126587*/          OPC_EmitInteger, MVT::i32, 14, 
/*126590*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126593*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLuv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMvshlImm:{ *:[v4i32] } (zext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm), (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$SIMM) - Complexity = 10
                    // Dst: (VSHLLuv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*126603*/        /*Scope*/ 31, /*->126635*/
/*126604*/          OPC_MoveParent,
/*126605*/          OPC_RecordChild1, // #1 = $SIMM
/*126606*/          OPC_MoveChild1,
/*126607*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*126610*/          OPC_CheckPredicate, 89, // Predicate_imm1_31
/*126612*/          OPC_MoveParent,
/*126613*/          OPC_CheckType, MVT::v2i64,
/*126615*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126617*/          OPC_EmitConvertToTarget, 1,
/*126619*/          OPC_EmitInteger, MVT::i32, 14, 
/*126622*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126625*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLuv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMvshlImm:{ *:[v2i64] } (zext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm), (imm:{ *:[i32] })<<P:Predicate_imm1_31>>:$SIMM) - Complexity = 10
                    // Dst: (VSHLLuv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*126635*/        0, /*End of Scope*/
/*126636*/      /*SwitchOpcode*/ 60|128,1/*188*/, TARGET_VAL(ISD::SIGN_EXTEND),// ->126828
/*126640*/        OPC_RecordChild0, // #0 = $Rn
/*126641*/        OPC_Scope, 28, /*->126671*/ // 6 children in Scope
/*126643*/          OPC_CheckChild0Type, MVT::v8i8,
/*126645*/          OPC_MoveParent,
/*126646*/          OPC_CheckChild1Integer, 8, 
/*126648*/          OPC_CheckType, MVT::v8i16,
/*126650*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126652*/          OPC_EmitInteger, MVT::i32, 8, 
/*126655*/          OPC_EmitInteger, MVT::i32, 14, 
/*126658*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126661*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi8), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshlImm:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Rn), 8:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi8:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Rn, 8:{ *:[i32] })
/*126671*/        /*Scope*/ 28, /*->126700*/
/*126672*/          OPC_CheckChild0Type, MVT::v4i16,
/*126674*/          OPC_MoveParent,
/*126675*/          OPC_CheckChild1Integer, 16, 
/*126677*/          OPC_CheckType, MVT::v4i32,
/*126679*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126681*/          OPC_EmitInteger, MVT::i32, 16, 
/*126684*/          OPC_EmitInteger, MVT::i32, 14, 
/*126687*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126690*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi16), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshlImm:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Rn), 16:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi16:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Rn, 16:{ *:[i32] })
/*126700*/        /*Scope*/ 26, /*->126727*/
/*126701*/          OPC_MoveParent,
/*126702*/          OPC_CheckChild1Integer, 32, 
/*126704*/          OPC_CheckType, MVT::v2i64,
/*126706*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126708*/          OPC_EmitInteger, MVT::i32, 32, 
/*126711*/          OPC_EmitInteger, MVT::i32, 14, 
/*126714*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126717*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi32), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshlImm:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Rn), 32:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi32:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Rn, 32:{ *:[i32] })
/*126727*/        /*Scope*/ 33, /*->126761*/
/*126728*/          OPC_CheckChild0Type, MVT::v8i8,
/*126730*/          OPC_MoveParent,
/*126731*/          OPC_RecordChild1, // #1 = $SIMM
/*126732*/          OPC_MoveChild1,
/*126733*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*126736*/          OPC_CheckPredicate, 106, // Predicate_imm1_7
/*126738*/          OPC_MoveParent,
/*126739*/          OPC_CheckType, MVT::v8i16,
/*126741*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126743*/          OPC_EmitConvertToTarget, 1,
/*126745*/          OPC_EmitInteger, MVT::i32, 14, 
/*126748*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126751*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLsv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMvshlImm:{ *:[v8i16] } (sext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm), (imm:{ *:[i32] })<<P:Predicate_imm1_7>>:$SIMM) - Complexity = 10
                    // Dst: (VSHLLsv8i16:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*126761*/        /*Scope*/ 33, /*->126795*/
/*126762*/          OPC_CheckChild0Type, MVT::v4i16,
/*126764*/          OPC_MoveParent,
/*126765*/          OPC_RecordChild1, // #1 = $SIMM
/*126766*/          OPC_MoveChild1,
/*126767*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*126770*/          OPC_CheckPredicate, 2, // Predicate_imm1_15
/*126772*/          OPC_MoveParent,
/*126773*/          OPC_CheckType, MVT::v4i32,
/*126775*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126777*/          OPC_EmitConvertToTarget, 1,
/*126779*/          OPC_EmitInteger, MVT::i32, 14, 
/*126782*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126785*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLsv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMvshlImm:{ *:[v4i32] } (sext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm), (imm:{ *:[i32] })<<P:Predicate_imm1_15>>:$SIMM) - Complexity = 10
                    // Dst: (VSHLLsv4i32:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*126795*/        /*Scope*/ 31, /*->126827*/
/*126796*/          OPC_MoveParent,
/*126797*/          OPC_RecordChild1, // #1 = $SIMM
/*126798*/          OPC_MoveChild1,
/*126799*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*126802*/          OPC_CheckPredicate, 89, // Predicate_imm1_31
/*126804*/          OPC_MoveParent,
/*126805*/          OPC_CheckType, MVT::v2i64,
/*126807*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126809*/          OPC_EmitConvertToTarget, 1,
/*126811*/          OPC_EmitInteger, MVT::i32, 14, 
/*126814*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126817*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLsv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMvshlImm:{ *:[v2i64] } (sext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm), (imm:{ *:[i32] })<<P:Predicate_imm1_31>>:$SIMM) - Complexity = 10
                    // Dst: (VSHLLsv2i64:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*126827*/        0, /*End of Scope*/
/*126828*/      /*SwitchOpcode*/ 88, TARGET_VAL(ISD::ANY_EXTEND),// ->126919
/*126831*/        OPC_RecordChild0, // #0 = $Rn
/*126832*/        OPC_Scope, 28, /*->126862*/ // 3 children in Scope
/*126834*/          OPC_CheckChild0Type, MVT::v8i8,
/*126836*/          OPC_MoveParent,
/*126837*/          OPC_CheckChild1Integer, 8, 
/*126839*/          OPC_CheckType, MVT::v8i16,
/*126841*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126843*/          OPC_EmitInteger, MVT::i32, 8, 
/*126846*/          OPC_EmitInteger, MVT::i32, 14, 
/*126849*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126852*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi8), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshlImm:{ *:[v8i16] } (anyext:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Rn), 8:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi8:{ *:[v8i16] } DPR:{ *:[v8i8] }:$Rn, 8:{ *:[i32] })
/*126862*/        /*Scope*/ 28, /*->126891*/
/*126863*/          OPC_CheckChild0Type, MVT::v4i16,
/*126865*/          OPC_MoveParent,
/*126866*/          OPC_CheckChild1Integer, 16, 
/*126868*/          OPC_CheckType, MVT::v4i32,
/*126870*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126872*/          OPC_EmitInteger, MVT::i32, 16, 
/*126875*/          OPC_EmitInteger, MVT::i32, 14, 
/*126878*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126881*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi16), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshlImm:{ *:[v4i32] } (anyext:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Rn), 16:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi16:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Rn, 16:{ *:[i32] })
/*126891*/        /*Scope*/ 26, /*->126918*/
/*126892*/          OPC_MoveParent,
/*126893*/          OPC_CheckChild1Integer, 32, 
/*126895*/          OPC_CheckType, MVT::v2i64,
/*126897*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*126899*/          OPC_EmitInteger, MVT::i32, 32, 
/*126902*/          OPC_EmitInteger, MVT::i32, 14, 
/*126905*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126908*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLLi32), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshlImm:{ *:[v2i64] } (anyext:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Rn), 32:{ *:[i32] }) - Complexity = 11
                    // Dst: (VSHLLi32:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Rn, 32:{ *:[i32] })
/*126918*/        0, /*End of Scope*/
/*126919*/      0, // EndSwitchOpcode
/*126920*/    /*Scope*/ 32|128,2/*288*/, /*->127210*/
/*126922*/      OPC_RecordChild0, // #0 = $src
/*126923*/      OPC_RecordChild1, // #1 = $imm
/*126924*/      OPC_MoveChild1,
/*126925*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*126928*/      OPC_Scope, 32, /*->126962*/ // 4 children in Scope
/*126930*/        OPC_CheckPredicate, 7, // Predicate_imm0_7
/*126932*/        OPC_MoveParent,
/*126933*/        OPC_CheckType, MVT::v16i8,
/*126935*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*126937*/        OPC_EmitConvertToTarget, 1,
/*126939*/        OPC_EmitInteger, MVT::i32, 0, 
/*126942*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126945*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #5
/*126951*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_immi8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (ARMvshlImm:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm) - Complexity = 7
                  // Dst: (MVE_VSHL_immi8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
/*126962*/      /*Scope*/ 32, /*->126995*/
/*126963*/        OPC_CheckPredicate, 33, // Predicate_imm0_15
/*126965*/        OPC_MoveParent,
/*126966*/        OPC_CheckType, MVT::v8i16,
/*126968*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*126970*/        OPC_EmitConvertToTarget, 1,
/*126972*/        OPC_EmitInteger, MVT::i32, 0, 
/*126975*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*126978*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #5
/*126984*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_immi16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (ARMvshlImm:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm) - Complexity = 7
                  // Dst: (MVE_VSHL_immi16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
/*126995*/      /*Scope*/ 32, /*->127028*/
/*126996*/        OPC_CheckPredicate, 31, // Predicate_imm0_31
/*126998*/        OPC_MoveParent,
/*126999*/        OPC_CheckType, MVT::v4i32,
/*127001*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127003*/        OPC_EmitConvertToTarget, 1,
/*127005*/        OPC_EmitInteger, MVT::i32, 0, 
/*127008*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127011*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #5
/*127017*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_immi32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                  // Src: (ARMvshlImm:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
                  // Dst: (MVE_VSHL_immi32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
/*127028*/      /*Scope*/ 51|128,1/*179*/, /*->127209*/
/*127030*/        OPC_MoveParent,
/*127031*/        OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->127054
/*127034*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*127036*/          OPC_EmitConvertToTarget, 1,
/*127038*/          OPC_EmitInteger, MVT::i32, 14, 
/*127041*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127044*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv8i8), 0,
                        MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMvshlImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                    // Dst: (VSHLiv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*127054*/        /*SwitchType*/ 20, MVT::v4i16,// ->127076
/*127056*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*127058*/          OPC_EmitConvertToTarget, 1,
/*127060*/          OPC_EmitInteger, MVT::i32, 14, 
/*127063*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127066*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv4i16), 0,
                        MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMvshlImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                    // Dst: (VSHLiv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*127076*/        /*SwitchType*/ 20, MVT::v2i32,// ->127098
/*127078*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*127080*/          OPC_EmitConvertToTarget, 1,
/*127082*/          OPC_EmitInteger, MVT::i32, 14, 
/*127085*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127088*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv2i32), 0,
                        MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMvshlImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                    // Dst: (VSHLiv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*127098*/        /*SwitchType*/ 20, MVT::v1i64,// ->127120
/*127100*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*127102*/          OPC_EmitConvertToTarget, 1,
/*127104*/          OPC_EmitInteger, MVT::i32, 14, 
/*127107*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127110*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv1i64), 0,
                        MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMvshlImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                    // Dst: (VSHLiv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*127120*/        /*SwitchType*/ 20, MVT::v16i8,// ->127142
/*127122*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*127124*/          OPC_EmitConvertToTarget, 1,
/*127126*/          OPC_EmitInteger, MVT::i32, 14, 
/*127129*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127132*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv16i8), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMvshlImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                    // Dst: (VSHLiv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*127142*/        /*SwitchType*/ 20, MVT::v8i16,// ->127164
/*127144*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*127146*/          OPC_EmitConvertToTarget, 1,
/*127148*/          OPC_EmitInteger, MVT::i32, 14, 
/*127151*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127154*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMvshlImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                    // Dst: (VSHLiv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*127164*/        /*SwitchType*/ 20, MVT::v4i32,// ->127186
/*127166*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*127168*/          OPC_EmitConvertToTarget, 1,
/*127170*/          OPC_EmitInteger, MVT::i32, 14, 
/*127173*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127176*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMvshlImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                    // Dst: (VSHLiv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*127186*/        /*SwitchType*/ 20, MVT::v2i64,// ->127208
/*127188*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*127190*/          OPC_EmitConvertToTarget, 1,
/*127192*/          OPC_EmitInteger, MVT::i32, 14, 
/*127195*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127198*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLiv2i64), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                    // Src: (ARMvshlImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                    // Dst: (VSHLiv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*127208*/        0, // EndSwitchType
/*127209*/      0, /*End of Scope*/
/*127210*/    0, /*End of Scope*/
/*127211*/  /*SwitchOpcode*/ 61|128,25/*3261*/, TARGET_VAL(ARMISD::VCMP),// ->130476
/*127215*/    OPC_RecordChild0, // #0 = $v1
/*127216*/    OPC_Scope, 69|128,4/*581*/, /*->127800*/ // 10 children in Scope
/*127219*/      OPC_CheckChild0Type, MVT::v16i8,
/*127221*/      OPC_Scope, 100|128,1/*228*/, /*->127452*/ // 2 children in Scope
/*127224*/        OPC_MoveChild1,
/*127225*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/*127228*/        OPC_RecordChild0, // #1 = $v2
/*127229*/        OPC_CheckChild0Type, MVT::i32,
/*127231*/        OPC_MoveParent,
/*127232*/        OPC_CheckType, MVT::v16i1,
/*127234*/        OPC_Scope, 26, /*->127262*/ // 8 children in Scope
/*127236*/          OPC_CheckChild2Integer, 0, 
/*127238*/          OPC_CheckChild2Type, MVT::i32,
/*127240*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127242*/          OPC_EmitInteger, MVT::i32, 0, 
/*127245*/          OPC_EmitInteger, MVT::i32, 0, 
/*127248*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127251*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 0:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPi8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 0:{ *:[i32] })
/*127262*/        /*Scope*/ 26, /*->127289*/
/*127263*/          OPC_CheckChild2Integer, 1, 
/*127265*/          OPC_CheckChild2Type, MVT::i32,
/*127267*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127269*/          OPC_EmitInteger, MVT::i32, 1, 
/*127272*/          OPC_EmitInteger, MVT::i32, 0, 
/*127275*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127278*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 1:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPi8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 1:{ *:[i32] })
/*127289*/        /*Scope*/ 26, /*->127316*/
/*127290*/          OPC_CheckChild2Integer, 10, 
/*127292*/          OPC_CheckChild2Type, MVT::i32,
/*127294*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127296*/          OPC_EmitInteger, MVT::i32, 10, 
/*127299*/          OPC_EmitInteger, MVT::i32, 0, 
/*127302*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127305*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 10:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 10:{ *:[i32] })
/*127316*/        /*Scope*/ 26, /*->127343*/
/*127317*/          OPC_CheckChild2Integer, 11, 
/*127319*/          OPC_CheckChild2Type, MVT::i32,
/*127321*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127323*/          OPC_EmitInteger, MVT::i32, 11, 
/*127326*/          OPC_EmitInteger, MVT::i32, 0, 
/*127329*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127332*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 11:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 11:{ *:[i32] })
/*127343*/        /*Scope*/ 26, /*->127370*/
/*127344*/          OPC_CheckChild2Integer, 12, 
/*127346*/          OPC_CheckChild2Type, MVT::i32,
/*127348*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127350*/          OPC_EmitInteger, MVT::i32, 12, 
/*127353*/          OPC_EmitInteger, MVT::i32, 0, 
/*127356*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127359*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 12:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 12:{ *:[i32] })
/*127370*/        /*Scope*/ 26, /*->127397*/
/*127371*/          OPC_CheckChild2Integer, 13, 
/*127373*/          OPC_CheckChild2Type, MVT::i32,
/*127375*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127377*/          OPC_EmitInteger, MVT::i32, 13, 
/*127380*/          OPC_EmitInteger, MVT::i32, 0, 
/*127383*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127386*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 13:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 13:{ *:[i32] })
/*127397*/        /*Scope*/ 26, /*->127424*/
/*127398*/          OPC_CheckChild2Integer, 8, 
/*127400*/          OPC_CheckChild2Type, MVT::i32,
/*127402*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127404*/          OPC_EmitInteger, MVT::i32, 8, 
/*127407*/          OPC_EmitInteger, MVT::i32, 0, 
/*127410*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127413*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 8:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPu8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 8:{ *:[i32] })
/*127424*/        /*Scope*/ 26, /*->127451*/
/*127425*/          OPC_CheckChild2Integer, 2, 
/*127427*/          OPC_CheckChild2Type, MVT::i32,
/*127429*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127431*/          OPC_EmitInteger, MVT::i32, 2, 
/*127434*/          OPC_EmitInteger, MVT::i32, 0, 
/*127437*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127440*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$v2), 2:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPu8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, GPR:{ *:[i32] }:$v2, 2:{ *:[i32] })
/*127451*/        0, /*End of Scope*/
/*127452*/      /*Scope*/ 89|128,2/*345*/, /*->127799*/
/*127454*/        OPC_RecordChild1, // #1 = $Vm
/*127455*/        OPC_Scope, 50, /*->127507*/ // 8 children in Scope
/*127457*/          OPC_CheckChild2Integer, 0, 
/*127459*/          OPC_CheckChild2Type, MVT::i32,
/*127461*/          OPC_SwitchType /*2 cases */, 18, MVT::v16i8,// ->127482
/*127464*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*127466*/            OPC_EmitInteger, MVT::i32, 14, 
/*127469*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127472*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQv16i8), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCEQv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/*127482*/          /*SwitchType*/ 22, MVT::v16i1,// ->127506
/*127484*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127486*/            OPC_EmitInteger, MVT::i32, 0, 
/*127489*/            OPC_EmitInteger, MVT::i32, 0, 
/*127492*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127495*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 0:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPi8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 0:{ *:[i32] })
/*127506*/          0, // EndSwitchType
/*127507*/        /*Scope*/ 50, /*->127558*/
/*127508*/          OPC_CheckChild2Integer, 10, 
/*127510*/          OPC_CheckChild2Type, MVT::i32,
/*127512*/          OPC_SwitchType /*2 cases */, 18, MVT::v16i8,// ->127533
/*127515*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*127517*/            OPC_EmitInteger, MVT::i32, 14, 
/*127520*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127523*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEsv16i8), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGEsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/*127533*/          /*SwitchType*/ 22, MVT::v16i1,// ->127557
/*127535*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127537*/            OPC_EmitInteger, MVT::i32, 10, 
/*127540*/            OPC_EmitInteger, MVT::i32, 0, 
/*127543*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127546*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 10:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPs8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 10:{ *:[i32] })
/*127557*/          0, // EndSwitchType
/*127558*/        /*Scope*/ 50, /*->127609*/
/*127559*/          OPC_CheckChild2Integer, 2, 
/*127561*/          OPC_CheckChild2Type, MVT::i32,
/*127563*/          OPC_SwitchType /*2 cases */, 18, MVT::v16i8,// ->127584
/*127566*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*127568*/            OPC_EmitInteger, MVT::i32, 14, 
/*127571*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127574*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEuv16i8), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm, 2:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGEuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/*127584*/          /*SwitchType*/ 22, MVT::v16i1,// ->127608
/*127586*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127588*/            OPC_EmitInteger, MVT::i32, 2, 
/*127591*/            OPC_EmitInteger, MVT::i32, 0, 
/*127594*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127597*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 2:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPu8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 2:{ *:[i32] })
/*127608*/          0, // EndSwitchType
/*127609*/        /*Scope*/ 50, /*->127660*/
/*127610*/          OPC_CheckChild2Integer, 12, 
/*127612*/          OPC_CheckChild2Type, MVT::i32,
/*127614*/          OPC_SwitchType /*2 cases */, 18, MVT::v16i8,// ->127635
/*127617*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*127619*/            OPC_EmitInteger, MVT::i32, 14, 
/*127622*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127625*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTsv16i8), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGTsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/*127635*/          /*SwitchType*/ 22, MVT::v16i1,// ->127659
/*127637*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127639*/            OPC_EmitInteger, MVT::i32, 12, 
/*127642*/            OPC_EmitInteger, MVT::i32, 0, 
/*127645*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127648*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 12:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPs8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 12:{ *:[i32] })
/*127659*/          0, // EndSwitchType
/*127660*/        /*Scope*/ 50, /*->127711*/
/*127661*/          OPC_CheckChild2Integer, 8, 
/*127663*/          OPC_CheckChild2Type, MVT::i32,
/*127665*/          OPC_SwitchType /*2 cases */, 18, MVT::v16i8,// ->127686
/*127668*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*127670*/            OPC_EmitInteger, MVT::i32, 14, 
/*127673*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127676*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTuv16i8), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm, 8:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGTuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/*127686*/          /*SwitchType*/ 22, MVT::v16i1,// ->127710
/*127688*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127690*/            OPC_EmitInteger, MVT::i32, 8, 
/*127693*/            OPC_EmitInteger, MVT::i32, 0, 
/*127696*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127699*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8), 0,
                          MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 8:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPu8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 8:{ *:[i32] })
/*127710*/          0, // EndSwitchType
/*127711*/        /*Scope*/ 28, /*->127740*/
/*127712*/          OPC_CheckChild2Integer, 1, 
/*127714*/          OPC_CheckChild2Type, MVT::i32,
/*127716*/          OPC_CheckType, MVT::v16i1,
/*127718*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127720*/          OPC_EmitInteger, MVT::i32, 1, 
/*127723*/          OPC_EmitInteger, MVT::i32, 0, 
/*127726*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127729*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 1:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPi8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 1:{ *:[i32] })
/*127740*/        /*Scope*/ 28, /*->127769*/
/*127741*/          OPC_CheckChild2Integer, 11, 
/*127743*/          OPC_CheckChild2Type, MVT::i32,
/*127745*/          OPC_CheckType, MVT::v16i1,
/*127747*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127749*/          OPC_EmitInteger, MVT::i32, 11, 
/*127752*/          OPC_EmitInteger, MVT::i32, 0, 
/*127755*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127758*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 11:{ *:[i32] })
/*127769*/        /*Scope*/ 28, /*->127798*/
/*127770*/          OPC_CheckChild2Integer, 13, 
/*127772*/          OPC_CheckChild2Type, MVT::i32,
/*127774*/          OPC_CheckType, MVT::v16i1,
/*127776*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127778*/          OPC_EmitInteger, MVT::i32, 13, 
/*127781*/          OPC_EmitInteger, MVT::i32, 0, 
/*127784*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127787*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs8:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, MQPR:{ *:[v16i8] }:$v2, 13:{ *:[i32] })
/*127798*/        0, /*End of Scope*/
/*127799*/      0, /*End of Scope*/
/*127800*/    /*Scope*/ 69|128,4/*581*/, /*->128383*/
/*127802*/      OPC_CheckChild0Type, MVT::v8i16,
/*127804*/      OPC_Scope, 100|128,1/*228*/, /*->128035*/ // 2 children in Scope
/*127807*/        OPC_MoveChild1,
/*127808*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/*127811*/        OPC_RecordChild0, // #1 = $v2
/*127812*/        OPC_CheckChild0Type, MVT::i32,
/*127814*/        OPC_MoveParent,
/*127815*/        OPC_CheckType, MVT::v8i1,
/*127817*/        OPC_Scope, 26, /*->127845*/ // 8 children in Scope
/*127819*/          OPC_CheckChild2Integer, 0, 
/*127821*/          OPC_CheckChild2Type, MVT::i32,
/*127823*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127825*/          OPC_EmitInteger, MVT::i32, 0, 
/*127828*/          OPC_EmitInteger, MVT::i32, 0, 
/*127831*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127834*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 0:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPi16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 0:{ *:[i32] })
/*127845*/        /*Scope*/ 26, /*->127872*/
/*127846*/          OPC_CheckChild2Integer, 1, 
/*127848*/          OPC_CheckChild2Type, MVT::i32,
/*127850*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127852*/          OPC_EmitInteger, MVT::i32, 1, 
/*127855*/          OPC_EmitInteger, MVT::i32, 0, 
/*127858*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127861*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 1:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPi16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 1:{ *:[i32] })
/*127872*/        /*Scope*/ 26, /*->127899*/
/*127873*/          OPC_CheckChild2Integer, 10, 
/*127875*/          OPC_CheckChild2Type, MVT::i32,
/*127877*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127879*/          OPC_EmitInteger, MVT::i32, 10, 
/*127882*/          OPC_EmitInteger, MVT::i32, 0, 
/*127885*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127888*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 10:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 10:{ *:[i32] })
/*127899*/        /*Scope*/ 26, /*->127926*/
/*127900*/          OPC_CheckChild2Integer, 11, 
/*127902*/          OPC_CheckChild2Type, MVT::i32,
/*127904*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127906*/          OPC_EmitInteger, MVT::i32, 11, 
/*127909*/          OPC_EmitInteger, MVT::i32, 0, 
/*127912*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127915*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 11:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 11:{ *:[i32] })
/*127926*/        /*Scope*/ 26, /*->127953*/
/*127927*/          OPC_CheckChild2Integer, 12, 
/*127929*/          OPC_CheckChild2Type, MVT::i32,
/*127931*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127933*/          OPC_EmitInteger, MVT::i32, 12, 
/*127936*/          OPC_EmitInteger, MVT::i32, 0, 
/*127939*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127942*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 12:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 12:{ *:[i32] })
/*127953*/        /*Scope*/ 26, /*->127980*/
/*127954*/          OPC_CheckChild2Integer, 13, 
/*127956*/          OPC_CheckChild2Type, MVT::i32,
/*127958*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127960*/          OPC_EmitInteger, MVT::i32, 13, 
/*127963*/          OPC_EmitInteger, MVT::i32, 0, 
/*127966*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127969*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 13:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 13:{ *:[i32] })
/*127980*/        /*Scope*/ 26, /*->128007*/
/*127981*/          OPC_CheckChild2Integer, 8, 
/*127983*/          OPC_CheckChild2Type, MVT::i32,
/*127985*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*127987*/          OPC_EmitInteger, MVT::i32, 8, 
/*127990*/          OPC_EmitInteger, MVT::i32, 0, 
/*127993*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*127996*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 8:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPu16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 8:{ *:[i32] })
/*128007*/        /*Scope*/ 26, /*->128034*/
/*128008*/          OPC_CheckChild2Integer, 2, 
/*128010*/          OPC_CheckChild2Type, MVT::i32,
/*128012*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128014*/          OPC_EmitInteger, MVT::i32, 2, 
/*128017*/          OPC_EmitInteger, MVT::i32, 0, 
/*128020*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128023*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$v2), 2:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPu16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, GPR:{ *:[i32] }:$v2, 2:{ *:[i32] })
/*128034*/        0, /*End of Scope*/
/*128035*/      /*Scope*/ 89|128,2/*345*/, /*->128382*/
/*128037*/        OPC_RecordChild1, // #1 = $Vm
/*128038*/        OPC_Scope, 50, /*->128090*/ // 8 children in Scope
/*128040*/          OPC_CheckChild2Integer, 0, 
/*128042*/          OPC_CheckChild2Type, MVT::i32,
/*128044*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->128065
/*128047*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*128049*/            OPC_EmitInteger, MVT::i32, 14, 
/*128052*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128055*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQv8i16), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCEQv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/*128065*/          /*SwitchType*/ 22, MVT::v8i1,// ->128089
/*128067*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128069*/            OPC_EmitInteger, MVT::i32, 0, 
/*128072*/            OPC_EmitInteger, MVT::i32, 0, 
/*128075*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128078*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 0:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPi16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 0:{ *:[i32] })
/*128089*/          0, // EndSwitchType
/*128090*/        /*Scope*/ 50, /*->128141*/
/*128091*/          OPC_CheckChild2Integer, 10, 
/*128093*/          OPC_CheckChild2Type, MVT::i32,
/*128095*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->128116
/*128098*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*128100*/            OPC_EmitInteger, MVT::i32, 14, 
/*128103*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128106*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEsv8i16), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGEsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/*128116*/          /*SwitchType*/ 22, MVT::v8i1,// ->128140
/*128118*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128120*/            OPC_EmitInteger, MVT::i32, 10, 
/*128123*/            OPC_EmitInteger, MVT::i32, 0, 
/*128126*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128129*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 10:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPs16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 10:{ *:[i32] })
/*128140*/          0, // EndSwitchType
/*128141*/        /*Scope*/ 50, /*->128192*/
/*128142*/          OPC_CheckChild2Integer, 2, 
/*128144*/          OPC_CheckChild2Type, MVT::i32,
/*128146*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->128167
/*128149*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*128151*/            OPC_EmitInteger, MVT::i32, 14, 
/*128154*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128157*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEuv8i16), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm, 2:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGEuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/*128167*/          /*SwitchType*/ 22, MVT::v8i1,// ->128191
/*128169*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128171*/            OPC_EmitInteger, MVT::i32, 2, 
/*128174*/            OPC_EmitInteger, MVT::i32, 0, 
/*128177*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128180*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 2:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPu16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 2:{ *:[i32] })
/*128191*/          0, // EndSwitchType
/*128192*/        /*Scope*/ 50, /*->128243*/
/*128193*/          OPC_CheckChild2Integer, 12, 
/*128195*/          OPC_CheckChild2Type, MVT::i32,
/*128197*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->128218
/*128200*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*128202*/            OPC_EmitInteger, MVT::i32, 14, 
/*128205*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128208*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTsv8i16), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGTsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/*128218*/          /*SwitchType*/ 22, MVT::v8i1,// ->128242
/*128220*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128222*/            OPC_EmitInteger, MVT::i32, 12, 
/*128225*/            OPC_EmitInteger, MVT::i32, 0, 
/*128228*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128231*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 12:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPs16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 12:{ *:[i32] })
/*128242*/          0, // EndSwitchType
/*128243*/        /*Scope*/ 50, /*->128294*/
/*128244*/          OPC_CheckChild2Integer, 8, 
/*128246*/          OPC_CheckChild2Type, MVT::i32,
/*128248*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->128269
/*128251*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*128253*/            OPC_EmitInteger, MVT::i32, 14, 
/*128256*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128259*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTuv8i16), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm, 8:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGTuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/*128269*/          /*SwitchType*/ 22, MVT::v8i1,// ->128293
/*128271*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128273*/            OPC_EmitInteger, MVT::i32, 8, 
/*128276*/            OPC_EmitInteger, MVT::i32, 0, 
/*128279*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128282*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 8:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPu16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 8:{ *:[i32] })
/*128293*/          0, // EndSwitchType
/*128294*/        /*Scope*/ 28, /*->128323*/
/*128295*/          OPC_CheckChild2Integer, 1, 
/*128297*/          OPC_CheckChild2Type, MVT::i32,
/*128299*/          OPC_CheckType, MVT::v8i1,
/*128301*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128303*/          OPC_EmitInteger, MVT::i32, 1, 
/*128306*/          OPC_EmitInteger, MVT::i32, 0, 
/*128309*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128312*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 1:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPi16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 1:{ *:[i32] })
/*128323*/        /*Scope*/ 28, /*->128352*/
/*128324*/          OPC_CheckChild2Integer, 11, 
/*128326*/          OPC_CheckChild2Type, MVT::i32,
/*128328*/          OPC_CheckType, MVT::v8i1,
/*128330*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128332*/          OPC_EmitInteger, MVT::i32, 11, 
/*128335*/          OPC_EmitInteger, MVT::i32, 0, 
/*128338*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128341*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 11:{ *:[i32] })
/*128352*/        /*Scope*/ 28, /*->128381*/
/*128353*/          OPC_CheckChild2Integer, 13, 
/*128355*/          OPC_CheckChild2Type, MVT::i32,
/*128357*/          OPC_CheckType, MVT::v8i1,
/*128359*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128361*/          OPC_EmitInteger, MVT::i32, 13, 
/*128364*/          OPC_EmitInteger, MVT::i32, 0, 
/*128367*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128370*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs16:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, MQPR:{ *:[v8i16] }:$v2, 13:{ *:[i32] })
/*128381*/        0, /*End of Scope*/
/*128382*/      0, /*End of Scope*/
/*128383*/    /*Scope*/ 69|128,4/*581*/, /*->128966*/
/*128385*/      OPC_CheckChild0Type, MVT::v4i32,
/*128387*/      OPC_Scope, 100|128,1/*228*/, /*->128618*/ // 2 children in Scope
/*128390*/        OPC_MoveChild1,
/*128391*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/*128394*/        OPC_RecordChild0, // #1 = $v2
/*128395*/        OPC_CheckChild0Type, MVT::i32,
/*128397*/        OPC_MoveParent,
/*128398*/        OPC_CheckType, MVT::v4i1,
/*128400*/        OPC_Scope, 26, /*->128428*/ // 8 children in Scope
/*128402*/          OPC_CheckChild2Integer, 0, 
/*128404*/          OPC_CheckChild2Type, MVT::i32,
/*128406*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128408*/          OPC_EmitInteger, MVT::i32, 0, 
/*128411*/          OPC_EmitInteger, MVT::i32, 0, 
/*128414*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128417*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 0:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPi32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 0:{ *:[i32] })
/*128428*/        /*Scope*/ 26, /*->128455*/
/*128429*/          OPC_CheckChild2Integer, 1, 
/*128431*/          OPC_CheckChild2Type, MVT::i32,
/*128433*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128435*/          OPC_EmitInteger, MVT::i32, 1, 
/*128438*/          OPC_EmitInteger, MVT::i32, 0, 
/*128441*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128444*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 1:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPi32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 1:{ *:[i32] })
/*128455*/        /*Scope*/ 26, /*->128482*/
/*128456*/          OPC_CheckChild2Integer, 10, 
/*128458*/          OPC_CheckChild2Type, MVT::i32,
/*128460*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128462*/          OPC_EmitInteger, MVT::i32, 10, 
/*128465*/          OPC_EmitInteger, MVT::i32, 0, 
/*128468*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128471*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 10:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 10:{ *:[i32] })
/*128482*/        /*Scope*/ 26, /*->128509*/
/*128483*/          OPC_CheckChild2Integer, 11, 
/*128485*/          OPC_CheckChild2Type, MVT::i32,
/*128487*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128489*/          OPC_EmitInteger, MVT::i32, 11, 
/*128492*/          OPC_EmitInteger, MVT::i32, 0, 
/*128495*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128498*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 11:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 11:{ *:[i32] })
/*128509*/        /*Scope*/ 26, /*->128536*/
/*128510*/          OPC_CheckChild2Integer, 12, 
/*128512*/          OPC_CheckChild2Type, MVT::i32,
/*128514*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128516*/          OPC_EmitInteger, MVT::i32, 12, 
/*128519*/          OPC_EmitInteger, MVT::i32, 0, 
/*128522*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128525*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 12:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 12:{ *:[i32] })
/*128536*/        /*Scope*/ 26, /*->128563*/
/*128537*/          OPC_CheckChild2Integer, 13, 
/*128539*/          OPC_CheckChild2Type, MVT::i32,
/*128541*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128543*/          OPC_EmitInteger, MVT::i32, 13, 
/*128546*/          OPC_EmitInteger, MVT::i32, 0, 
/*128549*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128552*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 13:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 13:{ *:[i32] })
/*128563*/        /*Scope*/ 26, /*->128590*/
/*128564*/          OPC_CheckChild2Integer, 8, 
/*128566*/          OPC_CheckChild2Type, MVT::i32,
/*128568*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128570*/          OPC_EmitInteger, MVT::i32, 8, 
/*128573*/          OPC_EmitInteger, MVT::i32, 0, 
/*128576*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128579*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 8:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPu32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 8:{ *:[i32] })
/*128590*/        /*Scope*/ 26, /*->128617*/
/*128591*/          OPC_CheckChild2Integer, 2, 
/*128593*/          OPC_CheckChild2Type, MVT::i32,
/*128595*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128597*/          OPC_EmitInteger, MVT::i32, 2, 
/*128600*/          OPC_EmitInteger, MVT::i32, 0, 
/*128603*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128606*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$v2), 2:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPu32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, GPR:{ *:[i32] }:$v2, 2:{ *:[i32] })
/*128617*/        0, /*End of Scope*/
/*128618*/      /*Scope*/ 89|128,2/*345*/, /*->128965*/
/*128620*/        OPC_RecordChild1, // #1 = $Vm
/*128621*/        OPC_Scope, 50, /*->128673*/ // 8 children in Scope
/*128623*/          OPC_CheckChild2Integer, 0, 
/*128625*/          OPC_CheckChild2Type, MVT::i32,
/*128627*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->128648
/*128630*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*128632*/            OPC_EmitInteger, MVT::i32, 14, 
/*128635*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128638*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQv4i32), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCEQv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*128648*/          /*SwitchType*/ 22, MVT::v4i1,// ->128672
/*128650*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128652*/            OPC_EmitInteger, MVT::i32, 0, 
/*128655*/            OPC_EmitInteger, MVT::i32, 0, 
/*128658*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128661*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 0:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPi32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 0:{ *:[i32] })
/*128672*/          0, // EndSwitchType
/*128673*/        /*Scope*/ 50, /*->128724*/
/*128674*/          OPC_CheckChild2Integer, 10, 
/*128676*/          OPC_CheckChild2Type, MVT::i32,
/*128678*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->128699
/*128681*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*128683*/            OPC_EmitInteger, MVT::i32, 14, 
/*128686*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128689*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEsv4i32), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGEsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*128699*/          /*SwitchType*/ 22, MVT::v4i1,// ->128723
/*128701*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128703*/            OPC_EmitInteger, MVT::i32, 10, 
/*128706*/            OPC_EmitInteger, MVT::i32, 0, 
/*128709*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128712*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 10:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPs32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 10:{ *:[i32] })
/*128723*/          0, // EndSwitchType
/*128724*/        /*Scope*/ 50, /*->128775*/
/*128725*/          OPC_CheckChild2Integer, 2, 
/*128727*/          OPC_CheckChild2Type, MVT::i32,
/*128729*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->128750
/*128732*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*128734*/            OPC_EmitInteger, MVT::i32, 14, 
/*128737*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128740*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEuv4i32), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm, 2:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGEuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*128750*/          /*SwitchType*/ 22, MVT::v4i1,// ->128774
/*128752*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128754*/            OPC_EmitInteger, MVT::i32, 2, 
/*128757*/            OPC_EmitInteger, MVT::i32, 0, 
/*128760*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128763*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 2:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPu32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 2:{ *:[i32] })
/*128774*/          0, // EndSwitchType
/*128775*/        /*Scope*/ 50, /*->128826*/
/*128776*/          OPC_CheckChild2Integer, 12, 
/*128778*/          OPC_CheckChild2Type, MVT::i32,
/*128780*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->128801
/*128783*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*128785*/            OPC_EmitInteger, MVT::i32, 14, 
/*128788*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128791*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTsv4i32), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGTsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*128801*/          /*SwitchType*/ 22, MVT::v4i1,// ->128825
/*128803*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128805*/            OPC_EmitInteger, MVT::i32, 12, 
/*128808*/            OPC_EmitInteger, MVT::i32, 0, 
/*128811*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128814*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 12:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPs32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 12:{ *:[i32] })
/*128825*/          0, // EndSwitchType
/*128826*/        /*Scope*/ 50, /*->128877*/
/*128827*/          OPC_CheckChild2Integer, 8, 
/*128829*/          OPC_CheckChild2Type, MVT::i32,
/*128831*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->128852
/*128834*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*128836*/            OPC_EmitInteger, MVT::i32, 14, 
/*128839*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128842*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTuv4i32), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm, 8:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGTuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*128852*/          /*SwitchType*/ 22, MVT::v4i1,// ->128876
/*128854*/            OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128856*/            OPC_EmitInteger, MVT::i32, 8, 
/*128859*/            OPC_EmitInteger, MVT::i32, 0, 
/*128862*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128865*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 8:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPu32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 8:{ *:[i32] })
/*128876*/          0, // EndSwitchType
/*128877*/        /*Scope*/ 28, /*->128906*/
/*128878*/          OPC_CheckChild2Integer, 1, 
/*128880*/          OPC_CheckChild2Type, MVT::i32,
/*128882*/          OPC_CheckType, MVT::v4i1,
/*128884*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128886*/          OPC_EmitInteger, MVT::i32, 1, 
/*128889*/          OPC_EmitInteger, MVT::i32, 0, 
/*128892*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128895*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 1:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPi32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 1:{ *:[i32] })
/*128906*/        /*Scope*/ 28, /*->128935*/
/*128907*/          OPC_CheckChild2Integer, 11, 
/*128909*/          OPC_CheckChild2Type, MVT::i32,
/*128911*/          OPC_CheckType, MVT::v4i1,
/*128913*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128915*/          OPC_EmitInteger, MVT::i32, 11, 
/*128918*/          OPC_EmitInteger, MVT::i32, 0, 
/*128921*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128924*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 11:{ *:[i32] })
/*128935*/        /*Scope*/ 28, /*->128964*/
/*128936*/          OPC_CheckChild2Integer, 13, 
/*128938*/          OPC_CheckChild2Type, MVT::i32,
/*128940*/          OPC_CheckType, MVT::v4i1,
/*128942*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*128944*/          OPC_EmitInteger, MVT::i32, 13, 
/*128947*/          OPC_EmitInteger, MVT::i32, 0, 
/*128950*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*128953*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs32:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, MQPR:{ *:[v4i32] }:$v2, 13:{ *:[i32] })
/*128964*/        0, /*End of Scope*/
/*128965*/      0, /*End of Scope*/
/*128966*/    /*Scope*/ 107|128,3/*491*/, /*->129459*/
/*128968*/      OPC_CheckChild0Type, MVT::v8f16,
/*128970*/      OPC_Scope, 112|128,1/*240*/, /*->129213*/ // 2 children in Scope
/*128973*/        OPC_MoveChild1,
/*128974*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/*128977*/        OPC_RecordChild0, // #1 = $v2
/*128978*/        OPC_CheckChild0Type, MVT::f16,
/*128980*/        OPC_MoveParent,
/*128981*/        OPC_CheckType, MVT::v8i1,
/*128983*/        OPC_Scope, 37, /*->129022*/ // 6 children in Scope
/*128985*/          OPC_CheckChild2Integer, 0, 
/*128987*/          OPC_CheckChild2Type, MVT::i32,
/*128989*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*128991*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*128994*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*129002*/          OPC_EmitInteger, MVT::i32, 0, 
/*129005*/          OPC_EmitInteger, MVT::i32, 0, 
/*129008*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129011*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 0:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 0:{ *:[i32] })
/*129022*/        /*Scope*/ 37, /*->129060*/
/*129023*/          OPC_CheckChild2Integer, 1, 
/*129025*/          OPC_CheckChild2Type, MVT::i32,
/*129027*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129029*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*129032*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*129040*/          OPC_EmitInteger, MVT::i32, 1, 
/*129043*/          OPC_EmitInteger, MVT::i32, 0, 
/*129046*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129049*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 1:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 1:{ *:[i32] })
/*129060*/        /*Scope*/ 37, /*->129098*/
/*129061*/          OPC_CheckChild2Integer, 10, 
/*129063*/          OPC_CheckChild2Type, MVT::i32,
/*129065*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129067*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*129070*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*129078*/          OPC_EmitInteger, MVT::i32, 10, 
/*129081*/          OPC_EmitInteger, MVT::i32, 0, 
/*129084*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129087*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 10:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 10:{ *:[i32] })
/*129098*/        /*Scope*/ 37, /*->129136*/
/*129099*/          OPC_CheckChild2Integer, 11, 
/*129101*/          OPC_CheckChild2Type, MVT::i32,
/*129103*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129105*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*129108*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*129116*/          OPC_EmitInteger, MVT::i32, 11, 
/*129119*/          OPC_EmitInteger, MVT::i32, 0, 
/*129122*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129125*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 11:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 11:{ *:[i32] })
/*129136*/        /*Scope*/ 37, /*->129174*/
/*129137*/          OPC_CheckChild2Integer, 12, 
/*129139*/          OPC_CheckChild2Type, MVT::i32,
/*129141*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129143*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*129146*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*129154*/          OPC_EmitInteger, MVT::i32, 12, 
/*129157*/          OPC_EmitInteger, MVT::i32, 0, 
/*129160*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129163*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 12:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 12:{ *:[i32] })
/*129174*/        /*Scope*/ 37, /*->129212*/
/*129175*/          OPC_CheckChild2Integer, 13, 
/*129177*/          OPC_CheckChild2Type, MVT::i32,
/*129179*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129181*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*129184*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*129192*/          OPC_EmitInteger, MVT::i32, 13, 
/*129195*/          OPC_EmitInteger, MVT::i32, 0, 
/*129198*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129201*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (ARMvdup:{ *:[v8f16] } HPR:{ *:[f16] }:$v2), 13:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } HPR:{ *:[f16] }:$v2, rGPR:{ *:[i32] }), 13:{ *:[i32] })
/*129212*/        0, /*End of Scope*/
/*129213*/      /*Scope*/ 115|128,1/*243*/, /*->129458*/
/*129215*/        OPC_RecordChild1, // #1 = $Vm
/*129216*/        OPC_Scope, 50, /*->129268*/ // 6 children in Scope
/*129218*/          OPC_CheckChild2Integer, 0, 
/*129220*/          OPC_CheckChild2Type, MVT::i32,
/*129222*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->129243
/*129225*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*129227*/            OPC_EmitInteger, MVT::i32, 14, 
/*129230*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129233*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQhq), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCEQhq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/*129243*/          /*SwitchType*/ 22, MVT::v8i1,// ->129267
/*129245*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129247*/            OPC_EmitInteger, MVT::i32, 0, 
/*129250*/            OPC_EmitInteger, MVT::i32, 0, 
/*129253*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129256*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 0:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 0:{ *:[i32] })
/*129267*/          0, // EndSwitchType
/*129268*/        /*Scope*/ 50, /*->129319*/
/*129269*/          OPC_CheckChild2Integer, 10, 
/*129271*/          OPC_CheckChild2Type, MVT::i32,
/*129273*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->129294
/*129276*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*129278*/            OPC_EmitInteger, MVT::i32, 14, 
/*129281*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129284*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEhq), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGEhq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/*129294*/          /*SwitchType*/ 22, MVT::v8i1,// ->129318
/*129296*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129298*/            OPC_EmitInteger, MVT::i32, 10, 
/*129301*/            OPC_EmitInteger, MVT::i32, 0, 
/*129304*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129307*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 10:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 10:{ *:[i32] })
/*129318*/          0, // EndSwitchType
/*129319*/        /*Scope*/ 50, /*->129370*/
/*129320*/          OPC_CheckChild2Integer, 12, 
/*129322*/          OPC_CheckChild2Type, MVT::i32,
/*129324*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->129345
/*129327*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*129329*/            OPC_EmitInteger, MVT::i32, 14, 
/*129332*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129335*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGThq), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGThq:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm)
/*129345*/          /*SwitchType*/ 22, MVT::v8i1,// ->129369
/*129347*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129349*/            OPC_EmitInteger, MVT::i32, 12, 
/*129352*/            OPC_EmitInteger, MVT::i32, 0, 
/*129355*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129358*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                          MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 12:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 12:{ *:[i32] })
/*129369*/          0, // EndSwitchType
/*129370*/        /*Scope*/ 28, /*->129399*/
/*129371*/          OPC_CheckChild2Integer, 1, 
/*129373*/          OPC_CheckChild2Type, MVT::i32,
/*129375*/          OPC_CheckType, MVT::v8i1,
/*129377*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129379*/          OPC_EmitInteger, MVT::i32, 1, 
/*129382*/          OPC_EmitInteger, MVT::i32, 0, 
/*129385*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129388*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 1:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 1:{ *:[i32] })
/*129399*/        /*Scope*/ 28, /*->129428*/
/*129400*/          OPC_CheckChild2Integer, 11, 
/*129402*/          OPC_CheckChild2Type, MVT::i32,
/*129404*/          OPC_CheckType, MVT::v8i1,
/*129406*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129408*/          OPC_EmitInteger, MVT::i32, 11, 
/*129411*/          OPC_EmitInteger, MVT::i32, 0, 
/*129414*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129417*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 11:{ *:[i32] })
/*129428*/        /*Scope*/ 28, /*->129457*/
/*129429*/          OPC_CheckChild2Integer, 13, 
/*129431*/          OPC_CheckChild2Type, MVT::i32,
/*129433*/          OPC_CheckType, MVT::v8i1,
/*129435*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129437*/          OPC_EmitInteger, MVT::i32, 13, 
/*129440*/          OPC_EmitInteger, MVT::i32, 0, 
/*129443*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129446*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf16:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, MQPR:{ *:[v8f16] }:$v2, 13:{ *:[i32] })
/*129457*/        0, /*End of Scope*/
/*129458*/      0, /*End of Scope*/
/*129459*/    /*Scope*/ 107|128,3/*491*/, /*->129952*/
/*129461*/      OPC_CheckChild0Type, MVT::v4f32,
/*129463*/      OPC_Scope, 112|128,1/*240*/, /*->129706*/ // 2 children in Scope
/*129466*/        OPC_MoveChild1,
/*129467*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/*129470*/        OPC_RecordChild0, // #1 = $v2
/*129471*/        OPC_CheckChild0Type, MVT::f32,
/*129473*/        OPC_MoveParent,
/*129474*/        OPC_CheckType, MVT::v4i1,
/*129476*/        OPC_Scope, 37, /*->129515*/ // 6 children in Scope
/*129478*/          OPC_CheckChild2Integer, 0, 
/*129480*/          OPC_CheckChild2Type, MVT::i32,
/*129482*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129484*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*129487*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*129495*/          OPC_EmitInteger, MVT::i32, 0, 
/*129498*/          OPC_EmitInteger, MVT::i32, 0, 
/*129501*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129504*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 0:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 0:{ *:[i32] })
/*129515*/        /*Scope*/ 37, /*->129553*/
/*129516*/          OPC_CheckChild2Integer, 1, 
/*129518*/          OPC_CheckChild2Type, MVT::i32,
/*129520*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129522*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*129525*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*129533*/          OPC_EmitInteger, MVT::i32, 1, 
/*129536*/          OPC_EmitInteger, MVT::i32, 0, 
/*129539*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129542*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 1:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 1:{ *:[i32] })
/*129553*/        /*Scope*/ 37, /*->129591*/
/*129554*/          OPC_CheckChild2Integer, 10, 
/*129556*/          OPC_CheckChild2Type, MVT::i32,
/*129558*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129560*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*129563*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*129571*/          OPC_EmitInteger, MVT::i32, 10, 
/*129574*/          OPC_EmitInteger, MVT::i32, 0, 
/*129577*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129580*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 10:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 10:{ *:[i32] })
/*129591*/        /*Scope*/ 37, /*->129629*/
/*129592*/          OPC_CheckChild2Integer, 11, 
/*129594*/          OPC_CheckChild2Type, MVT::i32,
/*129596*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129598*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*129601*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*129609*/          OPC_EmitInteger, MVT::i32, 11, 
/*129612*/          OPC_EmitInteger, MVT::i32, 0, 
/*129615*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129618*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 11:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 11:{ *:[i32] })
/*129629*/        /*Scope*/ 37, /*->129667*/
/*129630*/          OPC_CheckChild2Integer, 12, 
/*129632*/          OPC_CheckChild2Type, MVT::i32,
/*129634*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129636*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*129639*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*129647*/          OPC_EmitInteger, MVT::i32, 12, 
/*129650*/          OPC_EmitInteger, MVT::i32, 0, 
/*129653*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129656*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 12:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 12:{ *:[i32] })
/*129667*/        /*Scope*/ 37, /*->129705*/
/*129668*/          OPC_CheckChild2Integer, 13, 
/*129670*/          OPC_CheckChild2Type, MVT::i32,
/*129672*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129674*/          OPC_EmitInteger, MVT::i32, ARM::rGPRRegClassID,
/*129677*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*129685*/          OPC_EmitInteger, MVT::i32, 13, 
/*129688*/          OPC_EmitInteger, MVT::i32, 0, 
/*129691*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129694*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 3, 4, 5, 6, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (ARMvdup:{ *:[v4f32] } SPR:{ *:[f32] }:$v2), 13:{ *:[i32] }) - Complexity = 11
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, (COPY_TO_REGCLASS:{ *:[i32] } SPR:{ *:[f32] }:$v2, rGPR:{ *:[i32] }), 13:{ *:[i32] })
/*129705*/        0, /*End of Scope*/
/*129706*/      /*Scope*/ 115|128,1/*243*/, /*->129951*/
/*129708*/        OPC_RecordChild1, // #1 = $Vm
/*129709*/        OPC_Scope, 50, /*->129761*/ // 6 children in Scope
/*129711*/          OPC_CheckChild2Integer, 0, 
/*129713*/          OPC_CheckChild2Type, MVT::i32,
/*129715*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->129736
/*129718*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*129720*/            OPC_EmitInteger, MVT::i32, 14, 
/*129723*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129726*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQfq), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCEQfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/*129736*/          /*SwitchType*/ 22, MVT::v4i1,// ->129760
/*129738*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129740*/            OPC_EmitInteger, MVT::i32, 0, 
/*129743*/            OPC_EmitInteger, MVT::i32, 0, 
/*129746*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129749*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 0:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 0:{ *:[i32] })
/*129760*/          0, // EndSwitchType
/*129761*/        /*Scope*/ 50, /*->129812*/
/*129762*/          OPC_CheckChild2Integer, 10, 
/*129764*/          OPC_CheckChild2Type, MVT::i32,
/*129766*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->129787
/*129769*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*129771*/            OPC_EmitInteger, MVT::i32, 14, 
/*129774*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129777*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEfq), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGEfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/*129787*/          /*SwitchType*/ 22, MVT::v4i1,// ->129811
/*129789*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129791*/            OPC_EmitInteger, MVT::i32, 10, 
/*129794*/            OPC_EmitInteger, MVT::i32, 0, 
/*129797*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129800*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 10:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 10:{ *:[i32] })
/*129811*/          0, // EndSwitchType
/*129812*/        /*Scope*/ 50, /*->129863*/
/*129813*/          OPC_CheckChild2Integer, 12, 
/*129815*/          OPC_CheckChild2Type, MVT::i32,
/*129817*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->129838
/*129820*/            OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*129822*/            OPC_EmitInteger, MVT::i32, 14, 
/*129825*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129828*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTfq), 0,
                          MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (ARMvcmp:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                      // Dst: (VCGTfq:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vn, QPR:{ *:[v4f32] }:$Vm)
/*129838*/          /*SwitchType*/ 22, MVT::v4i1,// ->129862
/*129840*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129842*/            OPC_EmitInteger, MVT::i32, 12, 
/*129845*/            OPC_EmitInteger, MVT::i32, 0, 
/*129848*/            OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129851*/            OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                          MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                      // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 12:{ *:[i32] }) - Complexity = 8
                      // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 12:{ *:[i32] })
/*129862*/          0, // EndSwitchType
/*129863*/        /*Scope*/ 28, /*->129892*/
/*129864*/          OPC_CheckChild2Integer, 1, 
/*129866*/          OPC_CheckChild2Type, MVT::i32,
/*129868*/          OPC_CheckType, MVT::v4i1,
/*129870*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129872*/          OPC_EmitInteger, MVT::i32, 1, 
/*129875*/          OPC_EmitInteger, MVT::i32, 0, 
/*129878*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129881*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 1:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 1:{ *:[i32] })
/*129892*/        /*Scope*/ 28, /*->129921*/
/*129893*/          OPC_CheckChild2Integer, 11, 
/*129895*/          OPC_CheckChild2Type, MVT::i32,
/*129897*/          OPC_CheckType, MVT::v4i1,
/*129899*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129901*/          OPC_EmitInteger, MVT::i32, 11, 
/*129904*/          OPC_EmitInteger, MVT::i32, 0, 
/*129907*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129910*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 11:{ *:[i32] })
/*129921*/        /*Scope*/ 28, /*->129950*/
/*129922*/          OPC_CheckChild2Integer, 13, 
/*129924*/          OPC_CheckChild2Type, MVT::i32,
/*129926*/          OPC_CheckType, MVT::v4i1,
/*129928*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*129930*/          OPC_EmitInteger, MVT::i32, 13, 
/*129933*/          OPC_EmitInteger, MVT::i32, 0, 
/*129936*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129939*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmp:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf32:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, MQPR:{ *:[v4f32] }:$v2, 13:{ *:[i32] })
/*129950*/        0, /*End of Scope*/
/*129951*/      0, /*End of Scope*/
/*129952*/    /*Scope*/ 122, /*->130075*/
/*129953*/      OPC_CheckChild0Type, MVT::v8i8,
/*129955*/      OPC_RecordChild1, // #1 = $Vm
/*129956*/      OPC_CheckType, MVT::v8i8,
/*129958*/      OPC_Scope, 22, /*->129982*/ // 5 children in Scope
/*129960*/        OPC_CheckChild2Integer, 0, 
/*129962*/        OPC_CheckChild2Type, MVT::i32,
/*129964*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*129966*/        OPC_EmitInteger, MVT::i32, 14, 
/*129969*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129972*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCEQv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/*129982*/      /*Scope*/ 22, /*->130005*/
/*129983*/        OPC_CheckChild2Integer, 10, 
/*129985*/        OPC_CheckChild2Type, MVT::i32,
/*129987*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*129989*/        OPC_EmitInteger, MVT::i32, 14, 
/*129992*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*129995*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGEsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/*130005*/      /*Scope*/ 22, /*->130028*/
/*130006*/        OPC_CheckChild2Integer, 2, 
/*130008*/        OPC_CheckChild2Type, MVT::i32,
/*130010*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130012*/        OPC_EmitInteger, MVT::i32, 14, 
/*130015*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130018*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm, 2:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGEuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/*130028*/      /*Scope*/ 22, /*->130051*/
/*130029*/        OPC_CheckChild2Integer, 12, 
/*130031*/        OPC_CheckChild2Type, MVT::i32,
/*130033*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130035*/        OPC_EmitInteger, MVT::i32, 14, 
/*130038*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130041*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGTsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/*130051*/      /*Scope*/ 22, /*->130074*/
/*130052*/        OPC_CheckChild2Integer, 8, 
/*130054*/        OPC_CheckChild2Type, MVT::i32,
/*130056*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130058*/        OPC_EmitInteger, MVT::i32, 14, 
/*130061*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130064*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGTuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/*130074*/      0, /*End of Scope*/
/*130075*/    /*Scope*/ 122, /*->130198*/
/*130076*/      OPC_CheckChild0Type, MVT::v4i16,
/*130078*/      OPC_RecordChild1, // #1 = $Vm
/*130079*/      OPC_CheckType, MVT::v4i16,
/*130081*/      OPC_Scope, 22, /*->130105*/ // 5 children in Scope
/*130083*/        OPC_CheckChild2Integer, 0, 
/*130085*/        OPC_CheckChild2Type, MVT::i32,
/*130087*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130089*/        OPC_EmitInteger, MVT::i32, 14, 
/*130092*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130095*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCEQv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/*130105*/      /*Scope*/ 22, /*->130128*/
/*130106*/        OPC_CheckChild2Integer, 10, 
/*130108*/        OPC_CheckChild2Type, MVT::i32,
/*130110*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130112*/        OPC_EmitInteger, MVT::i32, 14, 
/*130115*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130118*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGEsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/*130128*/      /*Scope*/ 22, /*->130151*/
/*130129*/        OPC_CheckChild2Integer, 2, 
/*130131*/        OPC_CheckChild2Type, MVT::i32,
/*130133*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130135*/        OPC_EmitInteger, MVT::i32, 14, 
/*130138*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130141*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm, 2:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGEuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/*130151*/      /*Scope*/ 22, /*->130174*/
/*130152*/        OPC_CheckChild2Integer, 12, 
/*130154*/        OPC_CheckChild2Type, MVT::i32,
/*130156*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130158*/        OPC_EmitInteger, MVT::i32, 14, 
/*130161*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130164*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGTsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/*130174*/      /*Scope*/ 22, /*->130197*/
/*130175*/        OPC_CheckChild2Integer, 8, 
/*130177*/        OPC_CheckChild2Type, MVT::i32,
/*130179*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130181*/        OPC_EmitInteger, MVT::i32, 14, 
/*130184*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130187*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGTuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/*130197*/      0, /*End of Scope*/
/*130198*/    /*Scope*/ 122, /*->130321*/
/*130199*/      OPC_CheckChild0Type, MVT::v2i32,
/*130201*/      OPC_RecordChild1, // #1 = $Vm
/*130202*/      OPC_CheckType, MVT::v2i32,
/*130204*/      OPC_Scope, 22, /*->130228*/ // 5 children in Scope
/*130206*/        OPC_CheckChild2Integer, 0, 
/*130208*/        OPC_CheckChild2Type, MVT::i32,
/*130210*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130212*/        OPC_EmitInteger, MVT::i32, 14, 
/*130215*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130218*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCEQv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*130228*/      /*Scope*/ 22, /*->130251*/
/*130229*/        OPC_CheckChild2Integer, 10, 
/*130231*/        OPC_CheckChild2Type, MVT::i32,
/*130233*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130235*/        OPC_EmitInteger, MVT::i32, 14, 
/*130238*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130241*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGEsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*130251*/      /*Scope*/ 22, /*->130274*/
/*130252*/        OPC_CheckChild2Integer, 2, 
/*130254*/        OPC_CheckChild2Type, MVT::i32,
/*130256*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130258*/        OPC_EmitInteger, MVT::i32, 14, 
/*130261*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130264*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm, 2:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGEuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*130274*/      /*Scope*/ 22, /*->130297*/
/*130275*/        OPC_CheckChild2Integer, 12, 
/*130277*/        OPC_CheckChild2Type, MVT::i32,
/*130279*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130281*/        OPC_EmitInteger, MVT::i32, 14, 
/*130284*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130287*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGTsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*130297*/      /*Scope*/ 22, /*->130320*/
/*130298*/        OPC_CheckChild2Integer, 8, 
/*130300*/        OPC_CheckChild2Type, MVT::i32,
/*130302*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130304*/        OPC_EmitInteger, MVT::i32, 14, 
/*130307*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130310*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGTuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*130320*/      0, /*End of Scope*/
/*130321*/    /*Scope*/ 76, /*->130398*/
/*130322*/      OPC_CheckChild0Type, MVT::v2f32,
/*130324*/      OPC_RecordChild1, // #1 = $Vm
/*130325*/      OPC_CheckType, MVT::v2i32,
/*130327*/      OPC_Scope, 22, /*->130351*/ // 3 children in Scope
/*130329*/        OPC_CheckChild2Integer, 0, 
/*130331*/        OPC_CheckChild2Type, MVT::i32,
/*130333*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130335*/        OPC_EmitInteger, MVT::i32, 14, 
/*130338*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130341*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQfd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCEQfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/*130351*/      /*Scope*/ 22, /*->130374*/
/*130352*/        OPC_CheckChild2Integer, 10, 
/*130354*/        OPC_CheckChild2Type, MVT::i32,
/*130356*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130358*/        OPC_EmitInteger, MVT::i32, 14, 
/*130361*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130364*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEfd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGEfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/*130374*/      /*Scope*/ 22, /*->130397*/
/*130375*/        OPC_CheckChild2Integer, 12, 
/*130377*/        OPC_CheckChild2Type, MVT::i32,
/*130379*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130381*/        OPC_EmitInteger, MVT::i32, 14, 
/*130384*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130387*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTfd), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGTfd:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vn, DPR:{ *:[v2f32] }:$Vm)
/*130397*/      0, /*End of Scope*/
/*130398*/    /*Scope*/ 76, /*->130475*/
/*130399*/      OPC_CheckChild0Type, MVT::v4f16,
/*130401*/      OPC_RecordChild1, // #1 = $Vm
/*130402*/      OPC_CheckType, MVT::v4i16,
/*130404*/      OPC_Scope, 22, /*->130428*/ // 3 children in Scope
/*130406*/        OPC_CheckChild2Integer, 0, 
/*130408*/        OPC_CheckChild2Type, MVT::i32,
/*130410*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*130412*/        OPC_EmitInteger, MVT::i32, 14, 
/*130415*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130418*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQhd), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCEQhd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/*130428*/      /*Scope*/ 22, /*->130451*/
/*130429*/        OPC_CheckChild2Integer, 10, 
/*130431*/        OPC_CheckChild2Type, MVT::i32,
/*130433*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*130435*/        OPC_EmitInteger, MVT::i32, 14, 
/*130438*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130441*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEhd), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGEhd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/*130451*/      /*Scope*/ 22, /*->130474*/
/*130452*/        OPC_CheckChild2Integer, 12, 
/*130454*/        OPC_CheckChild2Type, MVT::i32,
/*130456*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*130458*/        OPC_EmitInteger, MVT::i32, 14, 
/*130461*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130464*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGThd), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvcmp:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGThd:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm)
/*130474*/      0, /*End of Scope*/
/*130475*/    0, /*End of Scope*/
/*130476*/  /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->130624
/*130480*/    OPC_MoveChild0,
/*130481*/    OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*130484*/    OPC_MoveParent,
/*130485*/    OPC_RecordChild1, // #0 = $src
/*130486*/    OPC_CheckChild2Integer, 0, 
/*130488*/    OPC_CheckChild2Type, MVT::i32,
/*130490*/    OPC_SwitchType /*6 cases */, 20, MVT::v2i64,// ->130513
/*130493*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130495*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2i64, 0/*#Ops*/,  // Results = #1
/*130501*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*130504*/      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] })
/*130513*/    /*SwitchType*/ 20, MVT::v4i32,// ->130535
/*130515*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130517*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #1
/*130523*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*130526*/      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] })
/*130535*/    /*SwitchType*/ 20, MVT::v8i16,// ->130557
/*130537*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130539*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8i16, 0/*#Ops*/,  // Results = #1
/*130545*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*130548*/      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] })
/*130557*/    /*SwitchType*/ 20, MVT::v16i8,// ->130579
/*130559*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130561*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16i8, 0/*#Ops*/,  // Results = #1
/*130567*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*130570*/      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] })
/*130579*/    /*SwitchType*/ 20, MVT::v4f32,// ->130601
/*130581*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130583*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4f32, 0/*#Ops*/,  // Results = #1
/*130589*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*130592*/      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] })
/*130601*/    /*SwitchType*/ 20, MVT::v8f16,// ->130623
/*130603*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130605*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8f16, 0/*#Ops*/,  // Results = #1
/*130611*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*130614*/      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] })
/*130623*/    0, // EndSwitchType
/*130624*/  /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ARMISD::VMULLs),// ->130785
/*130628*/    OPC_RecordChild0, // #0 = $Vn
/*130629*/    OPC_Scope, 64, /*->130695*/ // 3 children in Scope
/*130631*/      OPC_CheckChild0Type, MVT::v4i16,
/*130633*/      OPC_Scope, 37, /*->130672*/ // 2 children in Scope
/*130635*/        OPC_MoveChild1,
/*130636*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*130639*/        OPC_RecordChild0, // #1 = $Vm
/*130640*/        OPC_CheckChild0Type, MVT::v4i16,
/*130642*/        OPC_RecordChild1, // #2 = $lane
/*130643*/        OPC_MoveChild1,
/*130644*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*130647*/        OPC_MoveParent,
/*130648*/        OPC_MoveParent,
/*130649*/        OPC_CheckType, MVT::v4i32,
/*130651*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130653*/        OPC_EmitConvertToTarget, 2,
/*130655*/        OPC_EmitInteger, MVT::i32, 14, 
/*130658*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130661*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLslsv4i16), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (NEONvmulls:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                  // Dst: (VMULLslsv4i16:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/*130672*/      /*Scope*/ 21, /*->130694*/
/*130673*/        OPC_RecordChild1, // #1 = $Vm
/*130674*/        OPC_CheckType, MVT::v4i32,
/*130676*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130678*/        OPC_EmitInteger, MVT::i32, 14, 
/*130681*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130684*/        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)
/*130694*/      0, /*End of Scope*/
/*130695*/    /*Scope*/ 64, /*->130760*/
/*130696*/      OPC_CheckChild0Type, MVT::v2i32,
/*130698*/      OPC_Scope, 37, /*->130737*/ // 2 children in Scope
/*130700*/        OPC_MoveChild1,
/*130701*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*130704*/        OPC_RecordChild0, // #1 = $Vm
/*130705*/        OPC_CheckChild0Type, MVT::v2i32,
/*130707*/        OPC_RecordChild1, // #2 = $lane
/*130708*/        OPC_MoveChild1,
/*130709*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*130712*/        OPC_MoveParent,
/*130713*/        OPC_MoveParent,
/*130714*/        OPC_CheckType, MVT::v2i64,
/*130716*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130718*/        OPC_EmitConvertToTarget, 2,
/*130720*/        OPC_EmitInteger, MVT::i32, 14, 
/*130723*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130726*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLslsv2i32), 0,
                      MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (NEONvmulls:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                  // Dst: (VMULLslsv2i32:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/*130737*/      /*Scope*/ 21, /*->130759*/
/*130738*/        OPC_RecordChild1, // #1 = $Vm
/*130739*/        OPC_CheckType, MVT::v2i64,
/*130741*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130743*/        OPC_EmitInteger, MVT::i32, 14, 
/*130746*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130749*/        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)
/*130759*/      0, /*End of Scope*/
/*130760*/    /*Scope*/ 23, /*->130784*/
/*130761*/      OPC_CheckChild0Type, MVT::v8i8,
/*130763*/      OPC_RecordChild1, // #1 = $Vm
/*130764*/      OPC_CheckType, MVT::v8i16,
/*130766*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130768*/      OPC_EmitInteger, MVT::i32, 14, 
/*130771*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130774*/      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)
/*130784*/    0, /*End of Scope*/
/*130785*/  /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ARMISD::VMULLu),// ->130946
/*130789*/    OPC_RecordChild0, // #0 = $Vn
/*130790*/    OPC_Scope, 64, /*->130856*/ // 3 children in Scope
/*130792*/      OPC_CheckChild0Type, MVT::v4i16,
/*130794*/      OPC_Scope, 37, /*->130833*/ // 2 children in Scope
/*130796*/        OPC_MoveChild1,
/*130797*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*130800*/        OPC_RecordChild0, // #1 = $Vm
/*130801*/        OPC_CheckChild0Type, MVT::v4i16,
/*130803*/        OPC_RecordChild1, // #2 = $lane
/*130804*/        OPC_MoveChild1,
/*130805*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*130808*/        OPC_MoveParent,
/*130809*/        OPC_MoveParent,
/*130810*/        OPC_CheckType, MVT::v4i32,
/*130812*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130814*/        OPC_EmitConvertToTarget, 2,
/*130816*/        OPC_EmitInteger, MVT::i32, 14, 
/*130819*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130822*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLsluv4i16), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (NEONvmullu:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, (ARMvduplane:{ *:[v4i16] } DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                  // Dst: (VMULLsluv4i16:{ *:[v4i32] } DPR:{ *:[v4i16] }:$Vn, DPR_8:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/*130833*/      /*Scope*/ 21, /*->130855*/
/*130834*/        OPC_RecordChild1, // #1 = $Vm
/*130835*/        OPC_CheckType, MVT::v4i32,
/*130837*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130839*/        OPC_EmitInteger, MVT::i32, 14, 
/*130842*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130845*/        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)
/*130855*/      0, /*End of Scope*/
/*130856*/    /*Scope*/ 64, /*->130921*/
/*130857*/      OPC_CheckChild0Type, MVT::v2i32,
/*130859*/      OPC_Scope, 37, /*->130898*/ // 2 children in Scope
/*130861*/        OPC_MoveChild1,
/*130862*/        OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUPLANE),
/*130865*/        OPC_RecordChild0, // #1 = $Vm
/*130866*/        OPC_CheckChild0Type, MVT::v2i32,
/*130868*/        OPC_RecordChild1, // #2 = $lane
/*130869*/        OPC_MoveChild1,
/*130870*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*130873*/        OPC_MoveParent,
/*130874*/        OPC_MoveParent,
/*130875*/        OPC_CheckType, MVT::v2i64,
/*130877*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130879*/        OPC_EmitConvertToTarget, 2,
/*130881*/        OPC_EmitInteger, MVT::i32, 14, 
/*130884*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130887*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMULLsluv2i32), 0,
                      MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                  // Src: (NEONvmullu:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, (ARMvduplane:{ *:[v2i32] } DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)) - Complexity = 9
                  // Dst: (VMULLsluv2i32:{ *:[v2i64] } DPR:{ *:[v2i32] }:$Vn, DPR_VFP2:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/*130898*/      /*Scope*/ 21, /*->130920*/
/*130899*/        OPC_RecordChild1, // #1 = $Vm
/*130900*/        OPC_CheckType, MVT::v2i64,
/*130902*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130904*/        OPC_EmitInteger, MVT::i32, 14, 
/*130907*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130910*/        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)
/*130920*/      0, /*End of Scope*/
/*130921*/    /*Scope*/ 23, /*->130945*/
/*130922*/      OPC_CheckChild0Type, MVT::v8i8,
/*130924*/      OPC_RecordChild1, // #1 = $Vm
/*130925*/      OPC_CheckType, MVT::v8i16,
/*130927*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130929*/      OPC_EmitInteger, MVT::i32, 14, 
/*130932*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130935*/      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)
/*130945*/    0, /*End of Scope*/
/*130946*/  /*SwitchOpcode*/ 119|128,17/*2295*/, TARGET_VAL(ARMISD::VCMPZ),// ->133245
/*130950*/    OPC_RecordChild0, // #0 = $Vm
/*130951*/    OPC_Scope, 116, /*->131069*/ // 10 children in Scope
/*130953*/      OPC_CheckChild0Type, MVT::v8i8,
/*130955*/      OPC_CheckType, MVT::v8i8,
/*130957*/      OPC_Scope, 21, /*->130980*/ // 5 children in Scope
/*130959*/        OPC_CheckChild1Integer, 0, 
/*130961*/        OPC_CheckChild1Type, MVT::i32,
/*130963*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130965*/        OPC_EmitInteger, MVT::i32, 14, 
/*130968*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130971*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCEQzv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/*130980*/      /*Scope*/ 21, /*->131002*/
/*130981*/        OPC_CheckChild1Integer, 10, 
/*130983*/        OPC_CheckChild1Type, MVT::i32,
/*130985*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*130987*/        OPC_EmitInteger, MVT::i32, 14, 
/*130990*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*130993*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGEzv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/*131002*/      /*Scope*/ 21, /*->131024*/
/*131003*/        OPC_CheckChild1Integer, 13, 
/*131005*/        OPC_CheckChild1Type, MVT::i32,
/*131007*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131009*/        OPC_EmitInteger, MVT::i32, 14, 
/*131012*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131015*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, 13:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCLEzv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/*131024*/      /*Scope*/ 21, /*->131046*/
/*131025*/        OPC_CheckChild1Integer, 12, 
/*131027*/        OPC_CheckChild1Type, MVT::i32,
/*131029*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131031*/        OPC_EmitInteger, MVT::i32, 14, 
/*131034*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131037*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGTzv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/*131046*/      /*Scope*/ 21, /*->131068*/
/*131047*/        OPC_CheckChild1Integer, 11, 
/*131049*/        OPC_CheckChild1Type, MVT::i32,
/*131051*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131053*/        OPC_EmitInteger, MVT::i32, 14, 
/*131056*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131059*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv8i8), 0,
                      MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, 11:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCLTzv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/*131068*/      0, /*End of Scope*/
/*131069*/    /*Scope*/ 116, /*->131186*/
/*131070*/      OPC_CheckChild0Type, MVT::v4i16,
/*131072*/      OPC_CheckType, MVT::v4i16,
/*131074*/      OPC_Scope, 21, /*->131097*/ // 5 children in Scope
/*131076*/        OPC_CheckChild1Integer, 0, 
/*131078*/        OPC_CheckChild1Type, MVT::i32,
/*131080*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131082*/        OPC_EmitInteger, MVT::i32, 14, 
/*131085*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131088*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCEQzv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/*131097*/      /*Scope*/ 21, /*->131119*/
/*131098*/        OPC_CheckChild1Integer, 10, 
/*131100*/        OPC_CheckChild1Type, MVT::i32,
/*131102*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131104*/        OPC_EmitInteger, MVT::i32, 14, 
/*131107*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131110*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGEzv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/*131119*/      /*Scope*/ 21, /*->131141*/
/*131120*/        OPC_CheckChild1Integer, 13, 
/*131122*/        OPC_CheckChild1Type, MVT::i32,
/*131124*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131126*/        OPC_EmitInteger, MVT::i32, 14, 
/*131129*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131132*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, 13:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCLEzv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/*131141*/      /*Scope*/ 21, /*->131163*/
/*131142*/        OPC_CheckChild1Integer, 12, 
/*131144*/        OPC_CheckChild1Type, MVT::i32,
/*131146*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131148*/        OPC_EmitInteger, MVT::i32, 14, 
/*131151*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131154*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGTzv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/*131163*/      /*Scope*/ 21, /*->131185*/
/*131164*/        OPC_CheckChild1Integer, 11, 
/*131166*/        OPC_CheckChild1Type, MVT::i32,
/*131168*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131170*/        OPC_EmitInteger, MVT::i32, 14, 
/*131173*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131176*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv4i16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, 11:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCLTzv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/*131185*/      0, /*End of Scope*/
/*131186*/    /*Scope*/ 116, /*->131303*/
/*131187*/      OPC_CheckChild0Type, MVT::v2i32,
/*131189*/      OPC_CheckType, MVT::v2i32,
/*131191*/      OPC_Scope, 21, /*->131214*/ // 5 children in Scope
/*131193*/        OPC_CheckChild1Integer, 0, 
/*131195*/        OPC_CheckChild1Type, MVT::i32,
/*131197*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131199*/        OPC_EmitInteger, MVT::i32, 14, 
/*131202*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131205*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCEQzv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/*131214*/      /*Scope*/ 21, /*->131236*/
/*131215*/        OPC_CheckChild1Integer, 10, 
/*131217*/        OPC_CheckChild1Type, MVT::i32,
/*131219*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131221*/        OPC_EmitInteger, MVT::i32, 14, 
/*131224*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131227*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGEzv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/*131236*/      /*Scope*/ 21, /*->131258*/
/*131237*/        OPC_CheckChild1Integer, 13, 
/*131239*/        OPC_CheckChild1Type, MVT::i32,
/*131241*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131243*/        OPC_EmitInteger, MVT::i32, 14, 
/*131246*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131249*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, 13:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCLEzv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/*131258*/      /*Scope*/ 21, /*->131280*/
/*131259*/        OPC_CheckChild1Integer, 12, 
/*131261*/        OPC_CheckChild1Type, MVT::i32,
/*131263*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131265*/        OPC_EmitInteger, MVT::i32, 14, 
/*131268*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131271*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGTzv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/*131280*/      /*Scope*/ 21, /*->131302*/
/*131281*/        OPC_CheckChild1Integer, 11, 
/*131283*/        OPC_CheckChild1Type, MVT::i32,
/*131285*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131287*/        OPC_EmitInteger, MVT::i32, 14, 
/*131290*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131293*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv2i32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, 11:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCLTzv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/*131302*/      0, /*End of Scope*/
/*131303*/    /*Scope*/ 116, /*->131420*/
/*131304*/      OPC_CheckChild0Type, MVT::v2f32,
/*131306*/      OPC_CheckType, MVT::v2i32,
/*131308*/      OPC_Scope, 21, /*->131331*/ // 5 children in Scope
/*131310*/        OPC_CheckChild1Integer, 0, 
/*131312*/        OPC_CheckChild1Type, MVT::i32,
/*131314*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131316*/        OPC_EmitInteger, MVT::i32, 14, 
/*131319*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131322*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv2f32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCEQzv2f32:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/*131331*/      /*Scope*/ 21, /*->131353*/
/*131332*/        OPC_CheckChild1Integer, 10, 
/*131334*/        OPC_CheckChild1Type, MVT::i32,
/*131336*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131338*/        OPC_EmitInteger, MVT::i32, 14, 
/*131341*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131344*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv2f32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGEzv2f32:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/*131353*/      /*Scope*/ 21, /*->131375*/
/*131354*/        OPC_CheckChild1Integer, 13, 
/*131356*/        OPC_CheckChild1Type, MVT::i32,
/*131358*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131360*/        OPC_EmitInteger, MVT::i32, 14, 
/*131363*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131366*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv2f32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, 13:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCLEzv2f32:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/*131375*/      /*Scope*/ 21, /*->131397*/
/*131376*/        OPC_CheckChild1Integer, 12, 
/*131378*/        OPC_CheckChild1Type, MVT::i32,
/*131380*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131382*/        OPC_EmitInteger, MVT::i32, 14, 
/*131385*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131388*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv2f32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGTzv2f32:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/*131397*/      /*Scope*/ 21, /*->131419*/
/*131398*/        OPC_CheckChild1Integer, 11, 
/*131400*/        OPC_CheckChild1Type, MVT::i32,
/*131402*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131404*/        OPC_EmitInteger, MVT::i32, 14, 
/*131407*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131410*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv2f32), 0,
                      MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm, 11:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCLTzv2f32:{ *:[v2i32] } DPR:{ *:[v2f32] }:$Vm)
/*131419*/      0, /*End of Scope*/
/*131420*/    /*Scope*/ 116, /*->131537*/
/*131421*/      OPC_CheckChild0Type, MVT::v4f16,
/*131423*/      OPC_CheckType, MVT::v4i16,
/*131425*/      OPC_Scope, 21, /*->131448*/ // 5 children in Scope
/*131427*/        OPC_CheckChild1Integer, 0, 
/*131429*/        OPC_CheckChild1Type, MVT::i32,
/*131431*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*131433*/        OPC_EmitInteger, MVT::i32, 14, 
/*131436*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131439*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv4f16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCEQzv4f16:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/*131448*/      /*Scope*/ 21, /*->131470*/
/*131449*/        OPC_CheckChild1Integer, 10, 
/*131451*/        OPC_CheckChild1Type, MVT::i32,
/*131453*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*131455*/        OPC_EmitInteger, MVT::i32, 14, 
/*131458*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131461*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv4f16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGEzv4f16:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/*131470*/      /*Scope*/ 21, /*->131492*/
/*131471*/        OPC_CheckChild1Integer, 13, 
/*131473*/        OPC_CheckChild1Type, MVT::i32,
/*131475*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*131477*/        OPC_EmitInteger, MVT::i32, 14, 
/*131480*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131483*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv4f16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, 13:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCLEzv4f16:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/*131492*/      /*Scope*/ 21, /*->131514*/
/*131493*/        OPC_CheckChild1Integer, 12, 
/*131495*/        OPC_CheckChild1Type, MVT::i32,
/*131497*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*131499*/        OPC_EmitInteger, MVT::i32, 14, 
/*131502*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131505*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv4f16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCGTzv4f16:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/*131514*/      /*Scope*/ 21, /*->131536*/
/*131515*/        OPC_CheckChild1Integer, 11, 
/*131517*/        OPC_CheckChild1Type, MVT::i32,
/*131519*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*131521*/        OPC_EmitInteger, MVT::i32, 14, 
/*131524*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131527*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv4f16), 0,
                      MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvcmpz:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm, 11:{ *:[i32] }) - Complexity = 8
                  // Dst: (VCLTzv4f16:{ *:[v4i16] } DPR:{ *:[v4f16] }:$Vm)
/*131536*/      0, /*End of Scope*/
/*131537*/    /*Scope*/ 109|128,2/*365*/, /*->131904*/
/*131539*/      OPC_CheckChild0Type, MVT::v16i8,
/*131541*/      OPC_Scope, 52, /*->131595*/ // 8 children in Scope
/*131543*/        OPC_CheckChild1Integer, 0, 
/*131545*/        OPC_CheckChild1Type, MVT::i32,
/*131547*/        OPC_SwitchType /*2 cases */, 17, MVT::v16i8,// ->131567
/*131550*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131552*/          OPC_EmitInteger, MVT::i32, 14, 
/*131555*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131558*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv16i8), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCEQzv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/*131567*/        /*SwitchType*/ 25, MVT::v16i1,// ->131594
/*131569*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*131571*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*131574*/          OPC_EmitInteger, MVT::i32, 0, 
/*131577*/          OPC_EmitInteger, MVT::i32, 0, 
/*131580*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131583*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 0:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPi8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] })
/*131594*/        0, // EndSwitchType
/*131595*/      /*Scope*/ 52, /*->131648*/
/*131596*/        OPC_CheckChild1Integer, 10, 
/*131598*/        OPC_CheckChild1Type, MVT::i32,
/*131600*/        OPC_SwitchType /*2 cases */, 17, MVT::v16i8,// ->131620
/*131603*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131605*/          OPC_EmitInteger, MVT::i32, 14, 
/*131608*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131611*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv16i8), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCGEzv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/*131620*/        /*SwitchType*/ 25, MVT::v16i1,// ->131647
/*131622*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*131624*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*131627*/          OPC_EmitInteger, MVT::i32, 10, 
/*131630*/          OPC_EmitInteger, MVT::i32, 0, 
/*131633*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131636*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 10:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] })
/*131647*/        0, // EndSwitchType
/*131648*/      /*Scope*/ 52, /*->131701*/
/*131649*/        OPC_CheckChild1Integer, 13, 
/*131651*/        OPC_CheckChild1Type, MVT::i32,
/*131653*/        OPC_SwitchType /*2 cases */, 17, MVT::v16i8,// ->131673
/*131656*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131658*/          OPC_EmitInteger, MVT::i32, 14, 
/*131661*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131664*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv16i8), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCLEzv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/*131673*/        /*SwitchType*/ 25, MVT::v16i1,// ->131700
/*131675*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*131677*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*131680*/          OPC_EmitInteger, MVT::i32, 13, 
/*131683*/          OPC_EmitInteger, MVT::i32, 0, 
/*131686*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131689*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] })
/*131700*/        0, // EndSwitchType
/*131701*/      /*Scope*/ 52, /*->131754*/
/*131702*/        OPC_CheckChild1Integer, 12, 
/*131704*/        OPC_CheckChild1Type, MVT::i32,
/*131706*/        OPC_SwitchType /*2 cases */, 17, MVT::v16i8,// ->131726
/*131709*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131711*/          OPC_EmitInteger, MVT::i32, 14, 
/*131714*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131717*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv16i8), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCGTzv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/*131726*/        /*SwitchType*/ 25, MVT::v16i1,// ->131753
/*131728*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*131730*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*131733*/          OPC_EmitInteger, MVT::i32, 12, 
/*131736*/          OPC_EmitInteger, MVT::i32, 0, 
/*131739*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131742*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 12:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] })
/*131753*/        0, // EndSwitchType
/*131754*/      /*Scope*/ 52, /*->131807*/
/*131755*/        OPC_CheckChild1Integer, 11, 
/*131757*/        OPC_CheckChild1Type, MVT::i32,
/*131759*/        OPC_SwitchType /*2 cases */, 17, MVT::v16i8,// ->131779
/*131762*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131764*/          OPC_EmitInteger, MVT::i32, 14, 
/*131767*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131770*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv16i8), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCLTzv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/*131779*/        /*SwitchType*/ 25, MVT::v16i1,// ->131806
/*131781*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*131783*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*131786*/          OPC_EmitInteger, MVT::i32, 11, 
/*131789*/          OPC_EmitInteger, MVT::i32, 0, 
/*131792*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131795*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs8r), 0,
                        MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] })
/*131806*/        0, // EndSwitchType
/*131807*/      /*Scope*/ 31, /*->131839*/
/*131808*/        OPC_CheckChild1Integer, 1, 
/*131810*/        OPC_CheckChild1Type, MVT::i32,
/*131812*/        OPC_CheckType, MVT::v16i1,
/*131814*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*131816*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*131819*/        OPC_EmitInteger, MVT::i32, 1, 
/*131822*/        OPC_EmitInteger, MVT::i32, 0, 
/*131825*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131828*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi8r), 0,
                      MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 1:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VCMPi8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
/*131839*/      /*Scope*/ 31, /*->131871*/
/*131840*/        OPC_CheckChild1Integer, 8, 
/*131842*/        OPC_CheckChild1Type, MVT::i32,
/*131844*/        OPC_CheckType, MVT::v16i1,
/*131846*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*131848*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*131851*/        OPC_EmitInteger, MVT::i32, 8, 
/*131854*/        OPC_EmitInteger, MVT::i32, 0, 
/*131857*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131860*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8r), 0,
                      MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VCMPu8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 8:{ *:[i32] })
/*131871*/      /*Scope*/ 31, /*->131903*/
/*131872*/        OPC_CheckChild1Integer, 2, 
/*131874*/        OPC_CheckChild1Type, MVT::i32,
/*131876*/        OPC_CheckType, MVT::v16i1,
/*131878*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*131880*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*131883*/        OPC_EmitInteger, MVT::i32, 2, 
/*131886*/        OPC_EmitInteger, MVT::i32, 0, 
/*131889*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131892*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu8r), 0,
                      MVT::v16i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (ARMvcmpz:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, 2:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VCMPu8r:{ *:[v16i1] } MQPR:{ *:[v16i8] }:$v1, ZR:{ *:[i32] }, 2:{ *:[i32] })
/*131903*/      0, /*End of Scope*/
/*131904*/    /*Scope*/ 109|128,2/*365*/, /*->132271*/
/*131906*/      OPC_CheckChild0Type, MVT::v8i16,
/*131908*/      OPC_Scope, 52, /*->131962*/ // 8 children in Scope
/*131910*/        OPC_CheckChild1Integer, 0, 
/*131912*/        OPC_CheckChild1Type, MVT::i32,
/*131914*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->131934
/*131917*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131919*/          OPC_EmitInteger, MVT::i32, 14, 
/*131922*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131925*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCEQzv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/*131934*/        /*SwitchType*/ 25, MVT::v8i1,// ->131961
/*131936*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*131938*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*131941*/          OPC_EmitInteger, MVT::i32, 0, 
/*131944*/          OPC_EmitInteger, MVT::i32, 0, 
/*131947*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131950*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 0:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPi16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] })
/*131961*/        0, // EndSwitchType
/*131962*/      /*Scope*/ 52, /*->132015*/
/*131963*/        OPC_CheckChild1Integer, 10, 
/*131965*/        OPC_CheckChild1Type, MVT::i32,
/*131967*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->131987
/*131970*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*131972*/          OPC_EmitInteger, MVT::i32, 14, 
/*131975*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*131978*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCGEzv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/*131987*/        /*SwitchType*/ 25, MVT::v8i1,// ->132014
/*131989*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*131991*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*131994*/          OPC_EmitInteger, MVT::i32, 10, 
/*131997*/          OPC_EmitInteger, MVT::i32, 0, 
/*132000*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132003*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 10:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] })
/*132014*/        0, // EndSwitchType
/*132015*/      /*Scope*/ 52, /*->132068*/
/*132016*/        OPC_CheckChild1Integer, 13, 
/*132018*/        OPC_CheckChild1Type, MVT::i32,
/*132020*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->132040
/*132023*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*132025*/          OPC_EmitInteger, MVT::i32, 14, 
/*132028*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132031*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCLEzv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/*132040*/        /*SwitchType*/ 25, MVT::v8i1,// ->132067
/*132042*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*132044*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132047*/          OPC_EmitInteger, MVT::i32, 13, 
/*132050*/          OPC_EmitInteger, MVT::i32, 0, 
/*132053*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132056*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] })
/*132067*/        0, // EndSwitchType
/*132068*/      /*Scope*/ 52, /*->132121*/
/*132069*/        OPC_CheckChild1Integer, 12, 
/*132071*/        OPC_CheckChild1Type, MVT::i32,
/*132073*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->132093
/*132076*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*132078*/          OPC_EmitInteger, MVT::i32, 14, 
/*132081*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132084*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCGTzv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/*132093*/        /*SwitchType*/ 25, MVT::v8i1,// ->132120
/*132095*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*132097*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132100*/          OPC_EmitInteger, MVT::i32, 12, 
/*132103*/          OPC_EmitInteger, MVT::i32, 0, 
/*132106*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132109*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 12:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] })
/*132120*/        0, // EndSwitchType
/*132121*/      /*Scope*/ 52, /*->132174*/
/*132122*/        OPC_CheckChild1Integer, 11, 
/*132124*/        OPC_CheckChild1Type, MVT::i32,
/*132126*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->132146
/*132129*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*132131*/          OPC_EmitInteger, MVT::i32, 14, 
/*132134*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132137*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv8i16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCLTzv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/*132146*/        /*SwitchType*/ 25, MVT::v8i1,// ->132173
/*132148*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*132150*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132153*/          OPC_EmitInteger, MVT::i32, 11, 
/*132156*/          OPC_EmitInteger, MVT::i32, 0, 
/*132159*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132162*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] })
/*132173*/        0, // EndSwitchType
/*132174*/      /*Scope*/ 31, /*->132206*/
/*132175*/        OPC_CheckChild1Integer, 1, 
/*132177*/        OPC_CheckChild1Type, MVT::i32,
/*132179*/        OPC_CheckType, MVT::v8i1,
/*132181*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*132183*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132186*/        OPC_EmitInteger, MVT::i32, 1, 
/*132189*/        OPC_EmitInteger, MVT::i32, 0, 
/*132192*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132195*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi16r), 0,
                      MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 1:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VCMPi16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
/*132206*/      /*Scope*/ 31, /*->132238*/
/*132207*/        OPC_CheckChild1Integer, 8, 
/*132209*/        OPC_CheckChild1Type, MVT::i32,
/*132211*/        OPC_CheckType, MVT::v8i1,
/*132213*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*132215*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132218*/        OPC_EmitInteger, MVT::i32, 8, 
/*132221*/        OPC_EmitInteger, MVT::i32, 0, 
/*132224*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132227*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16r), 0,
                      MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VCMPu16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 8:{ *:[i32] })
/*132238*/      /*Scope*/ 31, /*->132270*/
/*132239*/        OPC_CheckChild1Integer, 2, 
/*132241*/        OPC_CheckChild1Type, MVT::i32,
/*132243*/        OPC_CheckType, MVT::v8i1,
/*132245*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*132247*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132250*/        OPC_EmitInteger, MVT::i32, 2, 
/*132253*/        OPC_EmitInteger, MVT::i32, 0, 
/*132256*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132259*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu16r), 0,
                      MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, 2:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VCMPu16r:{ *:[v8i1] } MQPR:{ *:[v8i16] }:$v1, ZR:{ *:[i32] }, 2:{ *:[i32] })
/*132270*/      0, /*End of Scope*/
/*132271*/    /*Scope*/ 109|128,2/*365*/, /*->132638*/
/*132273*/      OPC_CheckChild0Type, MVT::v4i32,
/*132275*/      OPC_Scope, 52, /*->132329*/ // 8 children in Scope
/*132277*/        OPC_CheckChild1Integer, 0, 
/*132279*/        OPC_CheckChild1Type, MVT::i32,
/*132281*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->132301
/*132284*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*132286*/          OPC_EmitInteger, MVT::i32, 14, 
/*132289*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132292*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCEQzv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/*132301*/        /*SwitchType*/ 25, MVT::v4i1,// ->132328
/*132303*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*132305*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132308*/          OPC_EmitInteger, MVT::i32, 0, 
/*132311*/          OPC_EmitInteger, MVT::i32, 0, 
/*132314*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132317*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 0:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPi32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] })
/*132328*/        0, // EndSwitchType
/*132329*/      /*Scope*/ 52, /*->132382*/
/*132330*/        OPC_CheckChild1Integer, 10, 
/*132332*/        OPC_CheckChild1Type, MVT::i32,
/*132334*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->132354
/*132337*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*132339*/          OPC_EmitInteger, MVT::i32, 14, 
/*132342*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132345*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCGEzv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/*132354*/        /*SwitchType*/ 25, MVT::v4i1,// ->132381
/*132356*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*132358*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132361*/          OPC_EmitInteger, MVT::i32, 10, 
/*132364*/          OPC_EmitInteger, MVT::i32, 0, 
/*132367*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132370*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 10:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] })
/*132381*/        0, // EndSwitchType
/*132382*/      /*Scope*/ 52, /*->132435*/
/*132383*/        OPC_CheckChild1Integer, 13, 
/*132385*/        OPC_CheckChild1Type, MVT::i32,
/*132387*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->132407
/*132390*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*132392*/          OPC_EmitInteger, MVT::i32, 14, 
/*132395*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132398*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCLEzv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/*132407*/        /*SwitchType*/ 25, MVT::v4i1,// ->132434
/*132409*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*132411*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132414*/          OPC_EmitInteger, MVT::i32, 13, 
/*132417*/          OPC_EmitInteger, MVT::i32, 0, 
/*132420*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132423*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] })
/*132434*/        0, // EndSwitchType
/*132435*/      /*Scope*/ 52, /*->132488*/
/*132436*/        OPC_CheckChild1Integer, 12, 
/*132438*/        OPC_CheckChild1Type, MVT::i32,
/*132440*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->132460
/*132443*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*132445*/          OPC_EmitInteger, MVT::i32, 14, 
/*132448*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132451*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCGTzv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/*132460*/        /*SwitchType*/ 25, MVT::v4i1,// ->132487
/*132462*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*132464*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132467*/          OPC_EmitInteger, MVT::i32, 12, 
/*132470*/          OPC_EmitInteger, MVT::i32, 0, 
/*132473*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132476*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 12:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] })
/*132487*/        0, // EndSwitchType
/*132488*/      /*Scope*/ 52, /*->132541*/
/*132489*/        OPC_CheckChild1Integer, 11, 
/*132491*/        OPC_CheckChild1Type, MVT::i32,
/*132493*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->132513
/*132496*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*132498*/          OPC_EmitInteger, MVT::i32, 14, 
/*132501*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132504*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv4i32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCLTzv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/*132513*/        /*SwitchType*/ 25, MVT::v4i1,// ->132540
/*132515*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*132517*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132520*/          OPC_EmitInteger, MVT::i32, 11, 
/*132523*/          OPC_EmitInteger, MVT::i32, 0, 
/*132526*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132529*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPs32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPs32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] })
/*132540*/        0, // EndSwitchType
/*132541*/      /*Scope*/ 31, /*->132573*/
/*132542*/        OPC_CheckChild1Integer, 1, 
/*132544*/        OPC_CheckChild1Type, MVT::i32,
/*132546*/        OPC_CheckType, MVT::v4i1,
/*132548*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*132550*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132553*/        OPC_EmitInteger, MVT::i32, 1, 
/*132556*/        OPC_EmitInteger, MVT::i32, 0, 
/*132559*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132562*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPi32r), 0,
                      MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 1:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VCMPi32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
/*132573*/      /*Scope*/ 31, /*->132605*/
/*132574*/        OPC_CheckChild1Integer, 8, 
/*132576*/        OPC_CheckChild1Type, MVT::i32,
/*132578*/        OPC_CheckType, MVT::v4i1,
/*132580*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*132582*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132585*/        OPC_EmitInteger, MVT::i32, 8, 
/*132588*/        OPC_EmitInteger, MVT::i32, 0, 
/*132591*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132594*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32r), 0,
                      MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 8:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VCMPu32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 8:{ *:[i32] })
/*132605*/      /*Scope*/ 31, /*->132637*/
/*132606*/        OPC_CheckChild1Integer, 2, 
/*132608*/        OPC_CheckChild1Type, MVT::i32,
/*132610*/        OPC_CheckType, MVT::v4i1,
/*132612*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*132614*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132617*/        OPC_EmitInteger, MVT::i32, 2, 
/*132620*/        OPC_EmitInteger, MVT::i32, 0, 
/*132623*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132626*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPu32r), 0,
                      MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, 2:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VCMPu32r:{ *:[v4i1] } MQPR:{ *:[v4i32] }:$v1, ZR:{ *:[i32] }, 2:{ *:[i32] })
/*132637*/      0, /*End of Scope*/
/*132638*/    /*Scope*/ 45|128,2/*301*/, /*->132941*/
/*132640*/      OPC_CheckChild0Type, MVT::v4f32,
/*132642*/      OPC_Scope, 52, /*->132696*/ // 6 children in Scope
/*132644*/        OPC_CheckChild1Integer, 0, 
/*132646*/        OPC_CheckChild1Type, MVT::i32,
/*132648*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->132668
/*132651*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*132653*/          OPC_EmitInteger, MVT::i32, 14, 
/*132656*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132659*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv4f32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCEQzv4f32:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/*132668*/        /*SwitchType*/ 25, MVT::v4i1,// ->132695
/*132670*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*132672*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132675*/          OPC_EmitInteger, MVT::i32, 0, 
/*132678*/          OPC_EmitInteger, MVT::i32, 0, 
/*132681*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132684*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 0:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] })
/*132695*/        0, // EndSwitchType
/*132696*/      /*Scope*/ 52, /*->132749*/
/*132697*/        OPC_CheckChild1Integer, 10, 
/*132699*/        OPC_CheckChild1Type, MVT::i32,
/*132701*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->132721
/*132704*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*132706*/          OPC_EmitInteger, MVT::i32, 14, 
/*132709*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132712*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv4f32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCGEzv4f32:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/*132721*/        /*SwitchType*/ 25, MVT::v4i1,// ->132748
/*132723*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*132725*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132728*/          OPC_EmitInteger, MVT::i32, 10, 
/*132731*/          OPC_EmitInteger, MVT::i32, 0, 
/*132734*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132737*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 10:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] })
/*132748*/        0, // EndSwitchType
/*132749*/      /*Scope*/ 52, /*->132802*/
/*132750*/        OPC_CheckChild1Integer, 13, 
/*132752*/        OPC_CheckChild1Type, MVT::i32,
/*132754*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->132774
/*132757*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*132759*/          OPC_EmitInteger, MVT::i32, 14, 
/*132762*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132765*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv4f32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCLEzv4f32:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/*132774*/        /*SwitchType*/ 25, MVT::v4i1,// ->132801
/*132776*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*132778*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132781*/          OPC_EmitInteger, MVT::i32, 13, 
/*132784*/          OPC_EmitInteger, MVT::i32, 0, 
/*132787*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132790*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] })
/*132801*/        0, // EndSwitchType
/*132802*/      /*Scope*/ 52, /*->132855*/
/*132803*/        OPC_CheckChild1Integer, 12, 
/*132805*/        OPC_CheckChild1Type, MVT::i32,
/*132807*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->132827
/*132810*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*132812*/          OPC_EmitInteger, MVT::i32, 14, 
/*132815*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132818*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv4f32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCGTzv4f32:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/*132827*/        /*SwitchType*/ 25, MVT::v4i1,// ->132854
/*132829*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*132831*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132834*/          OPC_EmitInteger, MVT::i32, 12, 
/*132837*/          OPC_EmitInteger, MVT::i32, 0, 
/*132840*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132843*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 12:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] })
/*132854*/        0, // EndSwitchType
/*132855*/      /*Scope*/ 52, /*->132908*/
/*132856*/        OPC_CheckChild1Integer, 11, 
/*132858*/        OPC_CheckChild1Type, MVT::i32,
/*132860*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->132880
/*132863*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*132865*/          OPC_EmitInteger, MVT::i32, 14, 
/*132868*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132871*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv4f32), 0,
                        MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCLTzv4f32:{ *:[v4i32] } QPR:{ *:[v4f32] }:$Vm)
/*132880*/        /*SwitchType*/ 25, MVT::v4i1,// ->132907
/*132882*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*132884*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132887*/          OPC_EmitInteger, MVT::i32, 11, 
/*132890*/          OPC_EmitInteger, MVT::i32, 0, 
/*132893*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132896*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                        MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] })
/*132907*/        0, // EndSwitchType
/*132908*/      /*Scope*/ 31, /*->132940*/
/*132909*/        OPC_CheckChild1Integer, 1, 
/*132911*/        OPC_CheckChild1Type, MVT::i32,
/*132913*/        OPC_CheckType, MVT::v4i1,
/*132915*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*132917*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132920*/        OPC_EmitInteger, MVT::i32, 1, 
/*132923*/        OPC_EmitInteger, MVT::i32, 0, 
/*132926*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132929*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf32r), 0,
                      MVT::v4i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (ARMvcmpz:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, 1:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VCMPf32r:{ *:[v4i1] } MQPR:{ *:[v4f32] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
/*132940*/      0, /*End of Scope*/
/*132941*/    /*Scope*/ 45|128,2/*301*/, /*->133244*/
/*132943*/      OPC_CheckChild0Type, MVT::v8f16,
/*132945*/      OPC_Scope, 52, /*->132999*/ // 6 children in Scope
/*132947*/        OPC_CheckChild1Integer, 0, 
/*132949*/        OPC_CheckChild1Type, MVT::i32,
/*132951*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->132971
/*132954*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*132956*/          OPC_EmitInteger, MVT::i32, 14, 
/*132959*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132962*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCEQzv8f16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, 0:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCEQzv8f16:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/*132971*/        /*SwitchType*/ 25, MVT::v8i1,// ->132998
/*132973*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*132975*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*132978*/          OPC_EmitInteger, MVT::i32, 0, 
/*132981*/          OPC_EmitInteger, MVT::i32, 0, 
/*132984*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*132987*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 0:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 0:{ *:[i32] })
/*132998*/        0, // EndSwitchType
/*132999*/      /*Scope*/ 52, /*->133052*/
/*133000*/        OPC_CheckChild1Integer, 10, 
/*133002*/        OPC_CheckChild1Type, MVT::i32,
/*133004*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->133024
/*133007*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*133009*/          OPC_EmitInteger, MVT::i32, 14, 
/*133012*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133015*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGEzv8f16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, 10:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCGEzv8f16:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/*133024*/        /*SwitchType*/ 25, MVT::v8i1,// ->133051
/*133026*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*133028*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*133031*/          OPC_EmitInteger, MVT::i32, 10, 
/*133034*/          OPC_EmitInteger, MVT::i32, 0, 
/*133037*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133040*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 10:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 10:{ *:[i32] })
/*133051*/        0, // EndSwitchType
/*133052*/      /*Scope*/ 52, /*->133105*/
/*133053*/        OPC_CheckChild1Integer, 13, 
/*133055*/        OPC_CheckChild1Type, MVT::i32,
/*133057*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->133077
/*133060*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*133062*/          OPC_EmitInteger, MVT::i32, 14, 
/*133065*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133068*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLEzv8f16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCLEzv8f16:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/*133077*/        /*SwitchType*/ 25, MVT::v8i1,// ->133104
/*133079*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*133081*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*133084*/          OPC_EmitInteger, MVT::i32, 13, 
/*133087*/          OPC_EmitInteger, MVT::i32, 0, 
/*133090*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133093*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 13:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 13:{ *:[i32] })
/*133104*/        0, // EndSwitchType
/*133105*/      /*Scope*/ 52, /*->133158*/
/*133106*/        OPC_CheckChild1Integer, 12, 
/*133108*/        OPC_CheckChild1Type, MVT::i32,
/*133110*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->133130
/*133113*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*133115*/          OPC_EmitInteger, MVT::i32, 14, 
/*133118*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133121*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCGTzv8f16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, 12:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCGTzv8f16:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/*133130*/        /*SwitchType*/ 25, MVT::v8i1,// ->133157
/*133132*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*133134*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*133137*/          OPC_EmitInteger, MVT::i32, 12, 
/*133140*/          OPC_EmitInteger, MVT::i32, 0, 
/*133143*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133146*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 12:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 12:{ *:[i32] })
/*133157*/        0, // EndSwitchType
/*133158*/      /*Scope*/ 52, /*->133211*/
/*133159*/        OPC_CheckChild1Integer, 11, 
/*133161*/        OPC_CheckChild1Type, MVT::i32,
/*133163*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->133183
/*133166*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasFullFP16()) && (Subtarget->hasNEON())
/*133168*/          OPC_EmitInteger, MVT::i32, 14, 
/*133171*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133174*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VCLTzv8f16), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (ARMvcmpz:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (VCLTzv8f16:{ *:[v8i16] } QPR:{ *:[v8f16] }:$Vm)
/*133183*/        /*SwitchType*/ 25, MVT::v8i1,// ->133210
/*133185*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*133187*/          OPC_EmitRegister, MVT::i32, ARM::ZR,
/*133190*/          OPC_EmitInteger, MVT::i32, 11, 
/*133193*/          OPC_EmitInteger, MVT::i32, 0, 
/*133196*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133199*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                        MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 11:{ *:[i32] }) - Complexity = 8
                    // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 11:{ *:[i32] })
/*133210*/        0, // EndSwitchType
/*133211*/      /*Scope*/ 31, /*->133243*/
/*133212*/        OPC_CheckChild1Integer, 1, 
/*133214*/        OPC_CheckChild1Type, MVT::i32,
/*133216*/        OPC_CheckType, MVT::v8i1,
/*133218*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasMVEFloatOps())
/*133220*/        OPC_EmitRegister, MVT::i32, ARM::ZR,
/*133223*/        OPC_EmitInteger, MVT::i32, 1, 
/*133226*/        OPC_EmitInteger, MVT::i32, 0, 
/*133229*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133232*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VCMPf16r), 0,
                      MVT::v8i1, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (ARMvcmpz:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, 1:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VCMPf16r:{ *:[v8i1] } MQPR:{ *:[v8f16] }:$v1, ZR:{ *:[i32] }, 1:{ *:[i32] })
/*133243*/      0, /*End of Scope*/
/*133244*/    0, /*End of Scope*/
/*133245*/  /*SwitchOpcode*/ 94, TARGET_VAL(ARMISD::VMOVN),// ->133342
/*133248*/    OPC_RecordChild0, // #0 = $Qd_src
/*133249*/    OPC_RecordChild1, // #1 = $Qm
/*133250*/    OPC_Scope, 44, /*->133296*/ // 2 children in Scope
/*133252*/      OPC_CheckChild2Integer, 0, 
/*133254*/      OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->133275
/*133257*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*133259*/        OPC_EmitInteger, MVT::i32, 0, 
/*133262*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133265*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVNi32bh), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (MVEvmovn:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VMOVNi32bh:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm)
/*133275*/      /*SwitchType*/ 18, MVT::v16i8,// ->133295
/*133277*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*133279*/        OPC_EmitInteger, MVT::i32, 0, 
/*133282*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133285*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVNi16bh), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (MVEvmovn:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v16i8] }:$Qm, 0:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VMOVNi16bh:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v16i8] }:$Qm)
/*133295*/      0, // EndSwitchType
/*133296*/    /*Scope*/ 44, /*->133341*/
/*133297*/      OPC_CheckChild2Integer, 1, 
/*133299*/      OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->133320
/*133302*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*133304*/        OPC_EmitInteger, MVT::i32, 0, 
/*133307*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133310*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVNi32th), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (MVEvmovn:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm, 1:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VMOVNi32th:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qd_src, MQPR:{ *:[v8i16] }:$Qm)
/*133320*/      /*SwitchType*/ 18, MVT::v16i8,// ->133340
/*133322*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*133324*/        OPC_EmitInteger, MVT::i32, 0, 
/*133327*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133330*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVNi16th), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (MVEvmovn:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v16i8] }:$Qm, 1:{ *:[i32] }) - Complexity = 8
                  // Dst: (MVE_VMOVNi16th:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qd_src, MQPR:{ *:[v16i8] }:$Qm)
/*133340*/      0, // EndSwitchType
/*133341*/    0, /*End of Scope*/
/*133342*/  /*SwitchOpcode*/ 102, TARGET_VAL(ARMISD::VRSHRNIMM),// ->133447
/*133345*/    OPC_RecordChild0, // #0 = $Vm
/*133346*/    OPC_Scope, 32, /*->133380*/ // 3 children in Scope
/*133348*/      OPC_CheckChild0Type, MVT::v8i16,
/*133350*/      OPC_RecordChild1, // #1 = $SIMM
/*133351*/      OPC_MoveChild1,
/*133352*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133355*/      OPC_CheckPredicate, 34, // Predicate_shr_imm8
/*133357*/      OPC_MoveParent,
/*133358*/      OPC_CheckType, MVT::v8i8,
/*133360*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133362*/      OPC_EmitConvertToTarget, 1,
/*133364*/      OPC_EmitInteger, MVT::i32, 14, 
/*133367*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133370*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRNv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrnImm:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM) - Complexity = 7
                // Dst: (VRSHRNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133380*/    /*Scope*/ 32, /*->133413*/
/*133381*/      OPC_CheckChild0Type, MVT::v4i32,
/*133383*/      OPC_RecordChild1, // #1 = $SIMM
/*133384*/      OPC_MoveChild1,
/*133385*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133388*/      OPC_CheckPredicate, 35, // Predicate_shr_imm16
/*133390*/      OPC_MoveParent,
/*133391*/      OPC_CheckType, MVT::v4i16,
/*133393*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133395*/      OPC_EmitConvertToTarget, 1,
/*133397*/      OPC_EmitInteger, MVT::i32, 14, 
/*133400*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133403*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRNv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrnImm:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM) - Complexity = 7
                // Dst: (VRSHRNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133413*/    /*Scope*/ 32, /*->133446*/
/*133414*/      OPC_CheckChild0Type, MVT::v2i64,
/*133416*/      OPC_RecordChild1, // #1 = $SIMM
/*133417*/      OPC_MoveChild1,
/*133418*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133421*/      OPC_CheckPredicate, 1, // Predicate_shr_imm32
/*133423*/      OPC_MoveParent,
/*133424*/      OPC_CheckType, MVT::v2i32,
/*133426*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133428*/      OPC_EmitConvertToTarget, 1,
/*133430*/      OPC_EmitInteger, MVT::i32, 14, 
/*133433*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133436*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRNv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrnImm:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM) - Complexity = 7
                // Dst: (VRSHRNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133446*/    0, /*End of Scope*/
/*133447*/  /*SwitchOpcode*/ 102, TARGET_VAL(ARMISD::VQSHRNsIMM),// ->133552
/*133450*/    OPC_RecordChild0, // #0 = $Vm
/*133451*/    OPC_Scope, 32, /*->133485*/ // 3 children in Scope
/*133453*/      OPC_CheckChild0Type, MVT::v8i16,
/*133455*/      OPC_RecordChild1, // #1 = $SIMM
/*133456*/      OPC_MoveChild1,
/*133457*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133460*/      OPC_CheckPredicate, 34, // Predicate_shr_imm8
/*133462*/      OPC_MoveParent,
/*133463*/      OPC_CheckType, MVT::v8i8,
/*133465*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133467*/      OPC_EmitConvertToTarget, 1,
/*133469*/      OPC_EmitInteger, MVT::i32, 14, 
/*133472*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133475*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRNsv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnsImm:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRNsv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133485*/    /*Scope*/ 32, /*->133518*/
/*133486*/      OPC_CheckChild0Type, MVT::v4i32,
/*133488*/      OPC_RecordChild1, // #1 = $SIMM
/*133489*/      OPC_MoveChild1,
/*133490*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133493*/      OPC_CheckPredicate, 35, // Predicate_shr_imm16
/*133495*/      OPC_MoveParent,
/*133496*/      OPC_CheckType, MVT::v4i16,
/*133498*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133500*/      OPC_EmitConvertToTarget, 1,
/*133502*/      OPC_EmitInteger, MVT::i32, 14, 
/*133505*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133508*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRNsv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnsImm:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRNsv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133518*/    /*Scope*/ 32, /*->133551*/
/*133519*/      OPC_CheckChild0Type, MVT::v2i64,
/*133521*/      OPC_RecordChild1, // #1 = $SIMM
/*133522*/      OPC_MoveChild1,
/*133523*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133526*/      OPC_CheckPredicate, 1, // Predicate_shr_imm32
/*133528*/      OPC_MoveParent,
/*133529*/      OPC_CheckType, MVT::v2i32,
/*133531*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133533*/      OPC_EmitConvertToTarget, 1,
/*133535*/      OPC_EmitInteger, MVT::i32, 14, 
/*133538*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133541*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRNsv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnsImm:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRNsv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133551*/    0, /*End of Scope*/
/*133552*/  /*SwitchOpcode*/ 102, TARGET_VAL(ARMISD::VQSHRNuIMM),// ->133657
/*133555*/    OPC_RecordChild0, // #0 = $Vm
/*133556*/    OPC_Scope, 32, /*->133590*/ // 3 children in Scope
/*133558*/      OPC_CheckChild0Type, MVT::v8i16,
/*133560*/      OPC_RecordChild1, // #1 = $SIMM
/*133561*/      OPC_MoveChild1,
/*133562*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133565*/      OPC_CheckPredicate, 34, // Predicate_shr_imm8
/*133567*/      OPC_MoveParent,
/*133568*/      OPC_CheckType, MVT::v8i8,
/*133570*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133572*/      OPC_EmitConvertToTarget, 1,
/*133574*/      OPC_EmitInteger, MVT::i32, 14, 
/*133577*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133580*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRNuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnuImm:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRNuv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133590*/    /*Scope*/ 32, /*->133623*/
/*133591*/      OPC_CheckChild0Type, MVT::v4i32,
/*133593*/      OPC_RecordChild1, // #1 = $SIMM
/*133594*/      OPC_MoveChild1,
/*133595*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133598*/      OPC_CheckPredicate, 35, // Predicate_shr_imm16
/*133600*/      OPC_MoveParent,
/*133601*/      OPC_CheckType, MVT::v4i16,
/*133603*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133605*/      OPC_EmitConvertToTarget, 1,
/*133607*/      OPC_EmitInteger, MVT::i32, 14, 
/*133610*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133613*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRNuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnuImm:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRNuv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133623*/    /*Scope*/ 32, /*->133656*/
/*133624*/      OPC_CheckChild0Type, MVT::v2i64,
/*133626*/      OPC_RecordChild1, // #1 = $SIMM
/*133627*/      OPC_MoveChild1,
/*133628*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133631*/      OPC_CheckPredicate, 1, // Predicate_shr_imm32
/*133633*/      OPC_MoveParent,
/*133634*/      OPC_CheckType, MVT::v2i32,
/*133636*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133638*/      OPC_EmitConvertToTarget, 1,
/*133640*/      OPC_EmitInteger, MVT::i32, 14, 
/*133643*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133646*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRNuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnuImm:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRNuv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133656*/    0, /*End of Scope*/
/*133657*/  /*SwitchOpcode*/ 102, TARGET_VAL(ARMISD::VQSHRNsuIMM),// ->133762
/*133660*/    OPC_RecordChild0, // #0 = $Vm
/*133661*/    OPC_Scope, 32, /*->133695*/ // 3 children in Scope
/*133663*/      OPC_CheckChild0Type, MVT::v8i16,
/*133665*/      OPC_RecordChild1, // #1 = $SIMM
/*133666*/      OPC_MoveChild1,
/*133667*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133670*/      OPC_CheckPredicate, 34, // Predicate_shr_imm8
/*133672*/      OPC_MoveParent,
/*133673*/      OPC_CheckType, MVT::v8i8,
/*133675*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133677*/      OPC_EmitConvertToTarget, 1,
/*133679*/      OPC_EmitInteger, MVT::i32, 14, 
/*133682*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133685*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRUNv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnsuImm:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRUNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133695*/    /*Scope*/ 32, /*->133728*/
/*133696*/      OPC_CheckChild0Type, MVT::v4i32,
/*133698*/      OPC_RecordChild1, // #1 = $SIMM
/*133699*/      OPC_MoveChild1,
/*133700*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133703*/      OPC_CheckPredicate, 35, // Predicate_shr_imm16
/*133705*/      OPC_MoveParent,
/*133706*/      OPC_CheckType, MVT::v4i16,
/*133708*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133710*/      OPC_EmitConvertToTarget, 1,
/*133712*/      OPC_EmitInteger, MVT::i32, 14, 
/*133715*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133718*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRUNv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnsuImm:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRUNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133728*/    /*Scope*/ 32, /*->133761*/
/*133729*/      OPC_CheckChild0Type, MVT::v2i64,
/*133731*/      OPC_RecordChild1, // #1 = $SIMM
/*133732*/      OPC_MoveChild1,
/*133733*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133736*/      OPC_CheckPredicate, 1, // Predicate_shr_imm32
/*133738*/      OPC_MoveParent,
/*133739*/      OPC_CheckType, MVT::v2i32,
/*133741*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133743*/      OPC_EmitConvertToTarget, 1,
/*133745*/      OPC_EmitInteger, MVT::i32, 14, 
/*133748*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133751*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHRUNv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshrnsuImm:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM) - Complexity = 7
                // Dst: (VQSHRUNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133761*/    0, /*End of Scope*/
/*133762*/  /*SwitchOpcode*/ 102, TARGET_VAL(ARMISD::VQRSHRNsIMM),// ->133867
/*133765*/    OPC_RecordChild0, // #0 = $Vm
/*133766*/    OPC_Scope, 32, /*->133800*/ // 3 children in Scope
/*133768*/      OPC_CheckChild0Type, MVT::v8i16,
/*133770*/      OPC_RecordChild1, // #1 = $SIMM
/*133771*/      OPC_MoveChild1,
/*133772*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133775*/      OPC_CheckPredicate, 34, // Predicate_shr_imm8
/*133777*/      OPC_MoveParent,
/*133778*/      OPC_CheckType, MVT::v8i8,
/*133780*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133782*/      OPC_EmitConvertToTarget, 1,
/*133784*/      OPC_EmitInteger, MVT::i32, 14, 
/*133787*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133790*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRNsv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnsImm:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRNsv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133800*/    /*Scope*/ 32, /*->133833*/
/*133801*/      OPC_CheckChild0Type, MVT::v4i32,
/*133803*/      OPC_RecordChild1, // #1 = $SIMM
/*133804*/      OPC_MoveChild1,
/*133805*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133808*/      OPC_CheckPredicate, 35, // Predicate_shr_imm16
/*133810*/      OPC_MoveParent,
/*133811*/      OPC_CheckType, MVT::v4i16,
/*133813*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133815*/      OPC_EmitConvertToTarget, 1,
/*133817*/      OPC_EmitInteger, MVT::i32, 14, 
/*133820*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133823*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRNsv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnsImm:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRNsv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133833*/    /*Scope*/ 32, /*->133866*/
/*133834*/      OPC_CheckChild0Type, MVT::v2i64,
/*133836*/      OPC_RecordChild1, // #1 = $SIMM
/*133837*/      OPC_MoveChild1,
/*133838*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133841*/      OPC_CheckPredicate, 1, // Predicate_shr_imm32
/*133843*/      OPC_MoveParent,
/*133844*/      OPC_CheckType, MVT::v2i32,
/*133846*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133848*/      OPC_EmitConvertToTarget, 1,
/*133850*/      OPC_EmitInteger, MVT::i32, 14, 
/*133853*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133856*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRNsv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnsImm:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRNsv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133866*/    0, /*End of Scope*/
/*133867*/  /*SwitchOpcode*/ 102, TARGET_VAL(ARMISD::VQRSHRNuIMM),// ->133972
/*133870*/    OPC_RecordChild0, // #0 = $Vm
/*133871*/    OPC_Scope, 32, /*->133905*/ // 3 children in Scope
/*133873*/      OPC_CheckChild0Type, MVT::v8i16,
/*133875*/      OPC_RecordChild1, // #1 = $SIMM
/*133876*/      OPC_MoveChild1,
/*133877*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133880*/      OPC_CheckPredicate, 34, // Predicate_shr_imm8
/*133882*/      OPC_MoveParent,
/*133883*/      OPC_CheckType, MVT::v8i8,
/*133885*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133887*/      OPC_EmitConvertToTarget, 1,
/*133889*/      OPC_EmitInteger, MVT::i32, 14, 
/*133892*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133895*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRNuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnuImm:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRNuv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133905*/    /*Scope*/ 32, /*->133938*/
/*133906*/      OPC_CheckChild0Type, MVT::v4i32,
/*133908*/      OPC_RecordChild1, // #1 = $SIMM
/*133909*/      OPC_MoveChild1,
/*133910*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133913*/      OPC_CheckPredicate, 35, // Predicate_shr_imm16
/*133915*/      OPC_MoveParent,
/*133916*/      OPC_CheckType, MVT::v4i16,
/*133918*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133920*/      OPC_EmitConvertToTarget, 1,
/*133922*/      OPC_EmitInteger, MVT::i32, 14, 
/*133925*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133928*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRNuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnuImm:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRNuv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133938*/    /*Scope*/ 32, /*->133971*/
/*133939*/      OPC_CheckChild0Type, MVT::v2i64,
/*133941*/      OPC_RecordChild1, // #1 = $SIMM
/*133942*/      OPC_MoveChild1,
/*133943*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133946*/      OPC_CheckPredicate, 1, // Predicate_shr_imm32
/*133948*/      OPC_MoveParent,
/*133949*/      OPC_CheckType, MVT::v2i32,
/*133951*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133953*/      OPC_EmitConvertToTarget, 1,
/*133955*/      OPC_EmitInteger, MVT::i32, 14, 
/*133958*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*133961*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRNuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnuImm:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRNuv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*133971*/    0, /*End of Scope*/
/*133972*/  /*SwitchOpcode*/ 102, TARGET_VAL(ARMISD::VQRSHRNsuIMM),// ->134077
/*133975*/    OPC_RecordChild0, // #0 = $Vm
/*133976*/    OPC_Scope, 32, /*->134010*/ // 3 children in Scope
/*133978*/      OPC_CheckChild0Type, MVT::v8i16,
/*133980*/      OPC_RecordChild1, // #1 = $SIMM
/*133981*/      OPC_MoveChild1,
/*133982*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*133985*/      OPC_CheckPredicate, 34, // Predicate_shr_imm8
/*133987*/      OPC_MoveParent,
/*133988*/      OPC_CheckType, MVT::v8i8,
/*133990*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*133992*/      OPC_EmitConvertToTarget, 1,
/*133994*/      OPC_EmitInteger, MVT::i32, 14, 
/*133997*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134000*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRUNv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnsuImm:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm8>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRUNv8i8:{ *:[v8i8] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*134010*/    /*Scope*/ 32, /*->134043*/
/*134011*/      OPC_CheckChild0Type, MVT::v4i32,
/*134013*/      OPC_RecordChild1, // #1 = $SIMM
/*134014*/      OPC_MoveChild1,
/*134015*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*134018*/      OPC_CheckPredicate, 35, // Predicate_shr_imm16
/*134020*/      OPC_MoveParent,
/*134021*/      OPC_CheckType, MVT::v4i16,
/*134023*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134025*/      OPC_EmitConvertToTarget, 1,
/*134027*/      OPC_EmitInteger, MVT::i32, 14, 
/*134030*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134033*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRUNv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnsuImm:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm16>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRUNv4i16:{ *:[v4i16] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*134043*/    /*Scope*/ 32, /*->134076*/
/*134044*/      OPC_CheckChild0Type, MVT::v2i64,
/*134046*/      OPC_RecordChild1, // #1 = $SIMM
/*134047*/      OPC_MoveChild1,
/*134048*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*134051*/      OPC_CheckPredicate, 1, // Predicate_shr_imm32
/*134053*/      OPC_MoveParent,
/*134054*/      OPC_CheckType, MVT::v2i32,
/*134056*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134058*/      OPC_EmitConvertToTarget, 1,
/*134060*/      OPC_EmitInteger, MVT::i32, 14, 
/*134063*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134066*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQRSHRUNv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqrshrnsuImm:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_shr_imm32>>:$SIMM) - Complexity = 7
                // Dst: (VQRSHRUNv2i32:{ *:[v2i32] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*134076*/    0, /*End of Scope*/
/*134077*/  /*SwitchOpcode*/ 94|128,5/*734*/, TARGET_VAL(ARMISD::VDUPLANE),// ->134815
/*134081*/    OPC_RecordChild0, // #0 = $Vm
/*134082*/    OPC_Scope, 59, /*->134143*/ // 10 children in Scope
/*134084*/      OPC_CheckChild0Type, MVT::v8i8,
/*134086*/      OPC_RecordChild1, // #1 = $lane
/*134087*/      OPC_MoveChild1,
/*134088*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*134091*/      OPC_Scope, 25, /*->134118*/ // 2 children in Scope
/*134093*/        OPC_CheckPredicate, 36, // Predicate_VectorIndex32
/*134095*/        OPC_MoveParent,
/*134096*/        OPC_CheckType, MVT::v16i8,
/*134098*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134100*/        OPC_EmitConvertToTarget, 1,
/*134102*/        OPC_EmitInteger, MVT::i32, 14, 
/*134105*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134108*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN8q), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvduplane:{ *:[v16i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_VectorIndex32>>:$lane) - Complexity = 7
                  // Dst: (VDUPLN8q:{ *:[v16i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$lane)
/*134118*/      /*Scope*/ 23, /*->134142*/
/*134119*/        OPC_MoveParent,
/*134120*/        OPC_CheckType, MVT::v8i8,
/*134122*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134124*/        OPC_EmitConvertToTarget, 1,
/*134126*/        OPC_EmitInteger, MVT::i32, 14, 
/*134129*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134132*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN8d), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvduplane:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (VDUPLN8d:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$lane)
/*134142*/      0, /*End of Scope*/
/*134143*/    /*Scope*/ 59, /*->134203*/
/*134144*/      OPC_CheckChild0Type, MVT::v4i16,
/*134146*/      OPC_RecordChild1, // #1 = $lane
/*134147*/      OPC_MoveChild1,
/*134148*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*134151*/      OPC_Scope, 25, /*->134178*/ // 2 children in Scope
/*134153*/        OPC_CheckPredicate, 36, // Predicate_VectorIndex32
/*134155*/        OPC_MoveParent,
/*134156*/        OPC_CheckType, MVT::v8i16,
/*134158*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134160*/        OPC_EmitConvertToTarget, 1,
/*134162*/        OPC_EmitInteger, MVT::i32, 14, 
/*134165*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134168*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN16q), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvduplane:{ *:[v8i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_VectorIndex32>>:$lane) - Complexity = 7
                  // Dst: (VDUPLN16q:{ *:[v8i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/*134178*/      /*Scope*/ 23, /*->134202*/
/*134179*/        OPC_MoveParent,
/*134180*/        OPC_CheckType, MVT::v4i16,
/*134182*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134184*/        OPC_EmitConvertToTarget, 1,
/*134186*/        OPC_EmitInteger, MVT::i32, 14, 
/*134189*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134192*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN16d), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvduplane:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (VDUPLN16d:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$lane)
/*134202*/      0, /*End of Scope*/
/*134203*/    /*Scope*/ 59, /*->134263*/
/*134204*/      OPC_CheckChild0Type, MVT::v2i32,
/*134206*/      OPC_RecordChild1, // #1 = $lane
/*134207*/      OPC_MoveChild1,
/*134208*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*134211*/      OPC_Scope, 25, /*->134238*/ // 2 children in Scope
/*134213*/        OPC_CheckPredicate, 36, // Predicate_VectorIndex32
/*134215*/        OPC_MoveParent,
/*134216*/        OPC_CheckType, MVT::v4i32,
/*134218*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134220*/        OPC_EmitConvertToTarget, 1,
/*134222*/        OPC_EmitInteger, MVT::i32, 14, 
/*134225*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134228*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32q), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvduplane:{ *:[v4i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] })<<P:Predicate_VectorIndex32>>:$lane) - Complexity = 7
                  // Dst: (VDUPLN32q:{ *:[v4i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/*134238*/      /*Scope*/ 23, /*->134262*/
/*134239*/        OPC_MoveParent,
/*134240*/        OPC_CheckType, MVT::v2i32,
/*134242*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134244*/        OPC_EmitConvertToTarget, 1,
/*134246*/        OPC_EmitInteger, MVT::i32, 14, 
/*134249*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134252*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32d), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvduplane:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (VDUPLN32d:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$lane)
/*134262*/      0, /*End of Scope*/
/*134263*/    /*Scope*/ 92, /*->134356*/
/*134264*/      OPC_CheckChild0Type, MVT::v16i8,
/*134266*/      OPC_RecordChild1, // #1 = $lane
/*134267*/      OPC_MoveChild1,
/*134268*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*134271*/      OPC_MoveParent,
/*134272*/      OPC_CheckType, MVT::v16i8,
/*134274*/      OPC_Scope, 36, /*->134312*/ // 2 children in Scope
/*134276*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134278*/        OPC_EmitConvertToTarget, 1,
/*134280*/        OPC_EmitNodeXForm, 15, 2, // DSubReg_i8_reg
/*134283*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v8i8, 2/*#Ops*/, 0, 3,  // Results = #4
/*134291*/        OPC_EmitConvertToTarget, 1,
/*134293*/        OPC_EmitNodeXForm, 16, 5, // SubReg_i8_lane
/*134296*/        OPC_EmitInteger, MVT::i32, 14, 
/*134299*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134302*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN8q), 0,
                      MVT::v16i8, 4/*#Ops*/, 4, 6, 7, 8, 
                  // Src: (ARMvduplane:{ *:[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))
/*134312*/      /*Scope*/ 42, /*->134355*/
/*134313*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*134315*/        OPC_EmitConvertToTarget, 1,
/*134317*/        OPC_EmitInteger, MVT::i32, 14, 
/*134320*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134323*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOV_from_lane_u8), 0,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4,  // Results = #5
/*134333*/        OPC_EmitInteger, MVT::i32, 0, 
/*134336*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134339*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #8
/*134345*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VDUP8), 0,
                      MVT::v16i8, 4/*#Ops*/, 5, 6, 7, 8, 
                  // Src: (ARMvduplane:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (MVE_VDUP8:{ *:[v16i8] } (MVE_VMOV_from_lane_u8:{ *:[i32] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] }):$lane))
/*134355*/      0, /*End of Scope*/
/*134356*/    /*Scope*/ 92, /*->134449*/
/*134357*/      OPC_CheckChild0Type, MVT::v8i16,
/*134359*/      OPC_RecordChild1, // #1 = $lane
/*134360*/      OPC_MoveChild1,
/*134361*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*134364*/      OPC_MoveParent,
/*134365*/      OPC_CheckType, MVT::v8i16,
/*134367*/      OPC_Scope, 36, /*->134405*/ // 2 children in Scope
/*134369*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134371*/        OPC_EmitConvertToTarget, 1,
/*134373*/        OPC_EmitNodeXForm, 5, 2, // DSubReg_i16_reg
/*134376*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i16, 2/*#Ops*/, 0, 3,  // Results = #4
/*134384*/        OPC_EmitConvertToTarget, 1,
/*134386*/        OPC_EmitNodeXForm, 6, 5, // SubReg_i16_lane
/*134389*/        OPC_EmitInteger, MVT::i32, 14, 
/*134392*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134395*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN16q), 0,
                      MVT::v8i16, 4/*#Ops*/, 4, 6, 7, 8, 
                  // Src: (ARMvduplane:{ *:[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))
/*134405*/      /*Scope*/ 42, /*->134448*/
/*134406*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*134408*/        OPC_EmitConvertToTarget, 1,
/*134410*/        OPC_EmitInteger, MVT::i32, 14, 
/*134413*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134416*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOV_from_lane_u16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4,  // Results = #5
/*134426*/        OPC_EmitInteger, MVT::i32, 0, 
/*134429*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134432*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #8
/*134438*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VDUP16), 0,
                      MVT::v8i16, 4/*#Ops*/, 5, 6, 7, 8, 
                  // Src: (ARMvduplane:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (MVE_VDUP16:{ *:[v8i16] } (MVE_VMOV_from_lane_u16:{ *:[i32] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] }):$lane))
/*134448*/      0, /*End of Scope*/
/*134449*/    /*Scope*/ 92, /*->134542*/
/*134450*/      OPC_CheckChild0Type, MVT::v4i32,
/*134452*/      OPC_RecordChild1, // #1 = $lane
/*134453*/      OPC_MoveChild1,
/*134454*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*134457*/      OPC_MoveParent,
/*134458*/      OPC_CheckType, MVT::v4i32,
/*134460*/      OPC_Scope, 36, /*->134498*/ // 2 children in Scope
/*134462*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134464*/        OPC_EmitConvertToTarget, 1,
/*134466*/        OPC_EmitNodeXForm, 7, 2, // DSubReg_i32_reg
/*134469*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i32, 2/*#Ops*/, 0, 3,  // Results = #4
/*134477*/        OPC_EmitConvertToTarget, 1,
/*134479*/        OPC_EmitNodeXForm, 8, 5, // SubReg_i32_lane
/*134482*/        OPC_EmitInteger, MVT::i32, 14, 
/*134485*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134488*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32q), 0,
                      MVT::v4i32, 4/*#Ops*/, 4, 6, 7, 8, 
                  // Src: (ARMvduplane:{ *:[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))
/*134498*/      /*Scope*/ 42, /*->134541*/
/*134499*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*134501*/        OPC_EmitConvertToTarget, 1,
/*134503*/        OPC_EmitInteger, MVT::i32, 14, 
/*134506*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134509*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOV_from_lane_32), 0,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4,  // Results = #5
/*134519*/        OPC_EmitInteger, MVT::i32, 0, 
/*134522*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134525*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #8
/*134531*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VDUP32), 0,
                      MVT::v4i32, 4/*#Ops*/, 5, 6, 7, 8, 
                  // Src: (ARMvduplane:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (MVE_VDUP32:{ *:[v4i32] } (MVE_VMOV_from_lane_32:{ *:[i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] }):$lane))
/*134541*/      0, /*End of Scope*/
/*134542*/    /*Scope*/ 30, /*->134573*/
/*134543*/      OPC_CheckChild0Type, MVT::v4f16,
/*134545*/      OPC_RecordChild1, // #1 = $lane
/*134546*/      OPC_MoveChild1,
/*134547*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*134550*/      OPC_MoveParent,
/*134551*/      OPC_CheckType, MVT::v4f16,
/*134553*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134555*/      OPC_EmitConvertToTarget, 1,
/*134557*/      OPC_EmitInteger, MVT::i32, 14, 
/*134560*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134563*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32d), 0,
                    MVT::v4f16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (ARMvduplane:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane) - Complexity = 6
                // Dst: (VDUPLN32d:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$lane)
/*134573*/    /*Scope*/ 54, /*->134628*/
/*134574*/      OPC_CheckChild0Type, MVT::v2f32,
/*134576*/      OPC_RecordChild1, // #1 = $lane
/*134577*/      OPC_MoveChild1,
/*134578*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*134581*/      OPC_MoveParent,
/*134582*/      OPC_SwitchType /*2 cases */, 20, MVT::v2f32,// ->134605
/*134585*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134587*/        OPC_EmitConvertToTarget, 1,
/*134589*/        OPC_EmitInteger, MVT::i32, 14, 
/*134592*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134595*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32d), 0,
                      MVT::v2f32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvduplane:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (VDUPLN32d:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/*134605*/      /*SwitchType*/ 20, MVT::v4f32,// ->134627
/*134607*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134609*/        OPC_EmitConvertToTarget, 1,
/*134611*/        OPC_EmitInteger, MVT::i32, 14, 
/*134614*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134617*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32q), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvduplane:{ *:[v4f32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (VDUPLN32q:{ *:[v4f32] } DPR:{ *:[v2f32] }:$Vm, (imm:{ *:[i32] }):$lane)
/*134627*/      0, // EndSwitchType
/*134628*/    /*Scope*/ 92, /*->134721*/
/*134629*/      OPC_CheckChild0Type, MVT::v8f16,
/*134631*/      OPC_RecordChild1, // #1 = $lane
/*134632*/      OPC_MoveChild1,
/*134633*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*134636*/      OPC_MoveParent,
/*134637*/      OPC_CheckType, MVT::v8f16,
/*134639*/      OPC_Scope, 36, /*->134677*/ // 2 children in Scope
/*134641*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134643*/        OPC_EmitConvertToTarget, 1,
/*134645*/        OPC_EmitNodeXForm, 5, 2, // DSubReg_i16_reg
/*134648*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4f16, 2/*#Ops*/, 0, 3,  // Results = #4
/*134656*/        OPC_EmitConvertToTarget, 1,
/*134658*/        OPC_EmitNodeXForm, 6, 5, // SubReg_i16_lane
/*134661*/        OPC_EmitInteger, MVT::i32, 14, 
/*134664*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134667*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN16q), 0,
                      MVT::v8f16, 4/*#Ops*/, 4, 6, 7, 8, 
                  // Src: (ARMvduplane:{ *:[v8f16] } QPR:{ *:[v8f16] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (VDUPLN16q:{ *:[v8f16] } (EXTRACT_SUBREG:{ *:[v4f16] } QPR:{ *:[v8f16] }:$src, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$lane)), (SubReg_i16_lane:{ *:[i32] } (imm:{ *:[i32] }):$lane))
/*134677*/      /*Scope*/ 42, /*->134720*/
/*134678*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*134680*/        OPC_EmitConvertToTarget, 1,
/*134682*/        OPC_EmitInteger, MVT::i32, 14, 
/*134685*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134688*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOV_from_lane_u16), 0,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4,  // Results = #5
/*134698*/        OPC_EmitInteger, MVT::i32, 0, 
/*134701*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134704*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #8
/*134710*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VDUP16), 0,
                      MVT::v8f16, 4/*#Ops*/, 5, 6, 7, 8, 
                  // Src: (ARMvduplane:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (MVE_VDUP16:{ *:[v8f16] } (MVE_VMOV_from_lane_u16:{ *:[i32] } MQPR:{ *:[v8f16] }:$src, (imm:{ *:[i32] }):$lane))
/*134720*/      0, /*End of Scope*/
/*134721*/    /*Scope*/ 92, /*->134814*/
/*134722*/      OPC_CheckChild0Type, MVT::v4f32,
/*134724*/      OPC_RecordChild1, // #1 = $lane
/*134725*/      OPC_MoveChild1,
/*134726*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*134729*/      OPC_MoveParent,
/*134730*/      OPC_CheckType, MVT::v4f32,
/*134732*/      OPC_Scope, 36, /*->134770*/ // 2 children in Scope
/*134734*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134736*/        OPC_EmitConvertToTarget, 1,
/*134738*/        OPC_EmitNodeXForm, 7, 2, // DSubReg_i32_reg
/*134741*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f32, 2/*#Ops*/, 0, 3,  // Results = #4
/*134749*/        OPC_EmitConvertToTarget, 1,
/*134751*/        OPC_EmitNodeXForm, 8, 5, // SubReg_i32_lane
/*134754*/        OPC_EmitInteger, MVT::i32, 14, 
/*134757*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134760*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VDUPLN32q), 0,
                      MVT::v4f32, 4/*#Ops*/, 4, 6, 7, 8, 
                  // Src: (ARMvduplane:{ *:[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))
/*134770*/      /*Scope*/ 42, /*->134813*/
/*134771*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*134773*/        OPC_EmitConvertToTarget, 1,
/*134775*/        OPC_EmitInteger, MVT::i32, 14, 
/*134778*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134781*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOV_from_lane_32), 0,
                      MVT::i32, 4/*#Ops*/, 0, 2, 3, 4,  // Results = #5
/*134791*/        OPC_EmitInteger, MVT::i32, 0, 
/*134794*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134797*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #8
/*134803*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VDUP32), 0,
                      MVT::v4f32, 4/*#Ops*/, 5, 6, 7, 8, 
                  // Src: (ARMvduplane:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$src, (imm:{ *:[i32] }):$lane) - Complexity = 6
                  // Dst: (MVE_VDUP32:{ *:[v4f32] } (MVE_VMOV_from_lane_32:{ *:[i32] } MQPR:{ *:[v4f32] }:$src, (imm:{ *:[i32] }):$lane))
/*134813*/      0, /*End of Scope*/
/*134814*/    0, /*End of Scope*/
/*134815*/  /*SwitchOpcode*/ 32|128,2/*288*/, TARGET_VAL(ARMISD::VSHRuIMM),// ->135107
/*134819*/    OPC_RecordChild0, // #0 = $src
/*134820*/    OPC_RecordChild1, // #1 = $imm
/*134821*/    OPC_MoveChild1,
/*134822*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*134825*/    OPC_Scope, 32, /*->134859*/ // 4 children in Scope
/*134827*/      OPC_CheckPredicate, 7, // Predicate_imm0_7
/*134829*/      OPC_MoveParent,
/*134830*/      OPC_CheckType, MVT::v16i8,
/*134832*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*134834*/      OPC_EmitConvertToTarget, 1,
/*134836*/      OPC_EmitInteger, MVT::i32, 0, 
/*134839*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134842*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #5
/*134848*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHR_immu8), 0,
                    MVT::v16i8, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                // Src: (ARMvshruImm:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm) - Complexity = 7
                // Dst: (MVE_VSHR_immu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
/*134859*/    /*Scope*/ 32, /*->134892*/
/*134860*/      OPC_CheckPredicate, 33, // Predicate_imm0_15
/*134862*/      OPC_MoveParent,
/*134863*/      OPC_CheckType, MVT::v8i16,
/*134865*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*134867*/      OPC_EmitConvertToTarget, 1,
/*134869*/      OPC_EmitInteger, MVT::i32, 0, 
/*134872*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134875*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #5
/*134881*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHR_immu16), 0,
                    MVT::v8i16, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                // Src: (ARMvshruImm:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm) - Complexity = 7
                // Dst: (MVE_VSHR_immu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
/*134892*/    /*Scope*/ 32, /*->134925*/
/*134893*/      OPC_CheckPredicate, 31, // Predicate_imm0_31
/*134895*/      OPC_MoveParent,
/*134896*/      OPC_CheckType, MVT::v4i32,
/*134898*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*134900*/      OPC_EmitConvertToTarget, 1,
/*134902*/      OPC_EmitInteger, MVT::i32, 0, 
/*134905*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134908*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #5
/*134914*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHR_immu32), 0,
                    MVT::v4i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                // Src: (ARMvshruImm:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
                // Dst: (MVE_VSHR_immu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
/*134925*/    /*Scope*/ 51|128,1/*179*/, /*->135106*/
/*134927*/      OPC_MoveParent,
/*134928*/      OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->134951
/*134931*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134933*/        OPC_EmitConvertToTarget, 1,
/*134935*/        OPC_EmitInteger, MVT::i32, 14, 
/*134938*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134941*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshruImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*134951*/      /*SwitchType*/ 20, MVT::v4i16,// ->134973
/*134953*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134955*/        OPC_EmitConvertToTarget, 1,
/*134957*/        OPC_EmitInteger, MVT::i32, 14, 
/*134960*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134963*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshruImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*134973*/      /*SwitchType*/ 20, MVT::v2i32,// ->134995
/*134975*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134977*/        OPC_EmitConvertToTarget, 1,
/*134979*/        OPC_EmitInteger, MVT::i32, 14, 
/*134982*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*134985*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshruImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*134995*/      /*SwitchType*/ 20, MVT::v1i64,// ->135017
/*134997*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*134999*/        OPC_EmitConvertToTarget, 1,
/*135001*/        OPC_EmitInteger, MVT::i32, 14, 
/*135004*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135007*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshruImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135017*/      /*SwitchType*/ 20, MVT::v16i8,// ->135039
/*135019*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135021*/        OPC_EmitConvertToTarget, 1,
/*135023*/        OPC_EmitInteger, MVT::i32, 14, 
/*135026*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135029*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshruImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135039*/      /*SwitchType*/ 20, MVT::v8i16,// ->135061
/*135041*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135043*/        OPC_EmitConvertToTarget, 1,
/*135045*/        OPC_EmitInteger, MVT::i32, 14, 
/*135048*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135051*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshruImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135061*/      /*SwitchType*/ 20, MVT::v4i32,// ->135083
/*135063*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135065*/        OPC_EmitConvertToTarget, 1,
/*135067*/        OPC_EmitInteger, MVT::i32, 14, 
/*135070*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135073*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshruImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135083*/      /*SwitchType*/ 20, MVT::v2i64,// ->135105
/*135085*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135087*/        OPC_EmitConvertToTarget, 1,
/*135089*/        OPC_EmitInteger, MVT::i32, 14, 
/*135092*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135095*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRuv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshruImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135105*/      0, // EndSwitchType
/*135106*/    0, /*End of Scope*/
/*135107*/  /*SwitchOpcode*/ 32|128,2/*288*/, TARGET_VAL(ARMISD::VSHRsIMM),// ->135399
/*135111*/    OPC_RecordChild0, // #0 = $src
/*135112*/    OPC_RecordChild1, // #1 = $imm
/*135113*/    OPC_MoveChild1,
/*135114*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*135117*/    OPC_Scope, 32, /*->135151*/ // 4 children in Scope
/*135119*/      OPC_CheckPredicate, 7, // Predicate_imm0_7
/*135121*/      OPC_MoveParent,
/*135122*/      OPC_CheckType, MVT::v16i8,
/*135124*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*135126*/      OPC_EmitConvertToTarget, 1,
/*135128*/      OPC_EmitInteger, MVT::i32, 0, 
/*135131*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135134*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #5
/*135140*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHR_imms8), 0,
                    MVT::v16i8, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                // Src: (ARMvshrsImm:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm) - Complexity = 7
                // Dst: (MVE_VSHR_imms8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_7>>:$imm)
/*135151*/    /*Scope*/ 32, /*->135184*/
/*135152*/      OPC_CheckPredicate, 33, // Predicate_imm0_15
/*135154*/      OPC_MoveParent,
/*135155*/      OPC_CheckType, MVT::v8i16,
/*135157*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*135159*/      OPC_EmitConvertToTarget, 1,
/*135161*/      OPC_EmitInteger, MVT::i32, 0, 
/*135164*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135167*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #5
/*135173*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHR_imms16), 0,
                    MVT::v8i16, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                // Src: (ARMvshrsImm:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm) - Complexity = 7
                // Dst: (MVE_VSHR_imms16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_15>>:$imm)
/*135184*/    /*Scope*/ 32, /*->135217*/
/*135185*/      OPC_CheckPredicate, 31, // Predicate_imm0_31
/*135187*/      OPC_MoveParent,
/*135188*/      OPC_CheckType, MVT::v4i32,
/*135190*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*135192*/      OPC_EmitConvertToTarget, 1,
/*135194*/      OPC_EmitInteger, MVT::i32, 0, 
/*135197*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135200*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #5
/*135206*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHR_imms32), 0,
                    MVT::v4i32, 5/*#Ops*/, 0, 2, 3, 4, 5, 
                // Src: (ARMvshrsImm:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm) - Complexity = 7
                // Dst: (MVE_VSHR_imms32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src, (imm:{ *:[i32] })<<P:Predicate_imm0_31>>:$imm)
/*135217*/    /*Scope*/ 51|128,1/*179*/, /*->135398*/
/*135219*/      OPC_MoveParent,
/*135220*/      OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->135243
/*135223*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135225*/        OPC_EmitConvertToTarget, 1,
/*135227*/        OPC_EmitInteger, MVT::i32, 14, 
/*135230*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135233*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshrsImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135243*/      /*SwitchType*/ 20, MVT::v4i16,// ->135265
/*135245*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135247*/        OPC_EmitConvertToTarget, 1,
/*135249*/        OPC_EmitInteger, MVT::i32, 14, 
/*135252*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135255*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshrsImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135265*/      /*SwitchType*/ 20, MVT::v2i32,// ->135287
/*135267*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135269*/        OPC_EmitConvertToTarget, 1,
/*135271*/        OPC_EmitInteger, MVT::i32, 14, 
/*135274*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135277*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshrsImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135287*/      /*SwitchType*/ 20, MVT::v1i64,// ->135309
/*135289*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135291*/        OPC_EmitConvertToTarget, 1,
/*135293*/        OPC_EmitInteger, MVT::i32, 14, 
/*135296*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135299*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshrsImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135309*/      /*SwitchType*/ 20, MVT::v16i8,// ->135331
/*135311*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135313*/        OPC_EmitConvertToTarget, 1,
/*135315*/        OPC_EmitInteger, MVT::i32, 14, 
/*135318*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135321*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshrsImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135331*/      /*SwitchType*/ 20, MVT::v8i16,// ->135353
/*135333*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135335*/        OPC_EmitConvertToTarget, 1,
/*135337*/        OPC_EmitInteger, MVT::i32, 14, 
/*135340*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135343*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshrsImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135353*/      /*SwitchType*/ 20, MVT::v4i32,// ->135375
/*135355*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135357*/        OPC_EmitConvertToTarget, 1,
/*135359*/        OPC_EmitInteger, MVT::i32, 14, 
/*135362*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135365*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshrsImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135375*/      /*SwitchType*/ 20, MVT::v2i64,// ->135397
/*135377*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135379*/        OPC_EmitConvertToTarget, 1,
/*135381*/        OPC_EmitInteger, MVT::i32, 14, 
/*135384*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135387*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHRsv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                  // Src: (ARMvshrsImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VSHRsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135397*/      0, // EndSwitchType
/*135398*/    0, /*End of Scope*/
/*135399*/  /*SwitchOpcode*/ 89, TARGET_VAL(ARMISD::VORRIMM),// ->135491
/*135402*/    OPC_RecordChild0, // #0 = $src
/*135403*/    OPC_RecordChild1, // #1 = $SIMM
/*135404*/    OPC_MoveChild1,
/*135405*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*135408*/    OPC_MoveParent,
/*135409*/    OPC_SwitchType /*4 cases */, 18, MVT::v4i16,// ->135430
/*135412*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135414*/      OPC_EmitInteger, MVT::i32, 14, 
/*135417*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135420*/      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)
/*135430*/    /*SwitchType*/ 18, MVT::v2i32,// ->135450
/*135432*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135434*/      OPC_EmitInteger, MVT::i32, 14, 
/*135437*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135440*/      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)
/*135450*/    /*SwitchType*/ 18, MVT::v8i16,// ->135470
/*135452*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135454*/      OPC_EmitInteger, MVT::i32, 14, 
/*135457*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135460*/      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)
/*135470*/    /*SwitchType*/ 18, MVT::v4i32,// ->135490
/*135472*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135474*/      OPC_EmitInteger, MVT::i32, 14, 
/*135477*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135480*/      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)
/*135490*/    0, // EndSwitchType
/*135491*/  /*SwitchOpcode*/ 89, TARGET_VAL(ARMISD::VBICIMM),// ->135583
/*135494*/    OPC_RecordChild0, // #0 = $src
/*135495*/    OPC_RecordChild1, // #1 = $SIMM
/*135496*/    OPC_MoveChild1,
/*135497*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*135500*/    OPC_MoveParent,
/*135501*/    OPC_SwitchType /*4 cases */, 18, MVT::v4i16,// ->135522
/*135504*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135506*/      OPC_EmitInteger, MVT::i32, 14, 
/*135509*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135512*/      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)
/*135522*/    /*SwitchType*/ 18, MVT::v2i32,// ->135542
/*135524*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135526*/      OPC_EmitInteger, MVT::i32, 14, 
/*135529*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135532*/      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)
/*135542*/    /*SwitchType*/ 18, MVT::v8i16,// ->135562
/*135544*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135546*/      OPC_EmitInteger, MVT::i32, 14, 
/*135549*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135552*/      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)
/*135562*/    /*SwitchType*/ 18, MVT::v4i32,// ->135582
/*135564*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135566*/      OPC_EmitInteger, MVT::i32, 14, 
/*135569*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135572*/      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)
/*135582*/    0, // EndSwitchType
/*135583*/  /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(ARMISD::VMVNIMM),// ->135727
/*135587*/    OPC_RecordChild0, // #0 = $SIMM
/*135588*/    OPC_MoveChild0,
/*135589*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*135592*/    OPC_MoveParent,
/*135593*/    OPC_SwitchType /*4 cases */, 17, MVT::v4i16,// ->135613
/*135596*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135598*/      OPC_EmitInteger, MVT::i32, 14, 
/*135601*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135604*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNv4i16), 0,
                    MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMvmvnImm:{ *:[v4i16] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VMVNv4i16:{ *:[v4i16] } (timm:{ *:[i32] }):$SIMM)
/*135613*/    /*SwitchType*/ 45, MVT::v8i16,// ->135660
/*135615*/      OPC_Scope, 17, /*->135634*/ // 2 children in Scope
/*135617*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135619*/        OPC_EmitInteger, MVT::i32, 14, 
/*135622*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135625*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNv8i16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvmvnImm:{ *:[v8i16] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMVNv8i16:{ *:[v8i16] } (timm:{ *:[i32] }):$SIMM)
/*135634*/      /*Scope*/ 24, /*->135659*/
/*135635*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*135637*/        OPC_EmitInteger, MVT::i32, 0, 
/*135640*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135643*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*135649*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMVNimmi16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvmvnImm:{ *:[v8i16] } (timm:{ *:[i32] }):$simm) - Complexity = 6
                  // Dst: (MVE_VMVNimmi16:{ *:[v8i16] } nImmSplatI16:{ *:[i32] }:$simm)
/*135659*/      0, /*End of Scope*/
/*135660*/    /*SwitchType*/ 17, MVT::v2i32,// ->135679
/*135662*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135664*/      OPC_EmitInteger, MVT::i32, 14, 
/*135667*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135670*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNv2i32), 0,
                    MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMvmvnImm:{ *:[v2i32] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VMVNv2i32:{ *:[v2i32] } (timm:{ *:[i32] }):$SIMM)
/*135679*/    /*SwitchType*/ 45, MVT::v4i32,// ->135726
/*135681*/      OPC_Scope, 17, /*->135700*/ // 2 children in Scope
/*135683*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135685*/        OPC_EmitInteger, MVT::i32, 14, 
/*135688*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135691*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMVNv4i32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvmvnImm:{ *:[v4i32] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMVNv4i32:{ *:[v4i32] } (timm:{ *:[i32] }):$SIMM)
/*135700*/      /*Scope*/ 24, /*->135725*/
/*135701*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*135703*/        OPC_EmitInteger, MVT::i32, 0, 
/*135706*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135709*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*135715*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMVNimmi32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvmvnImm:{ *:[v4i32] } (timm:{ *:[i32] }):$simm) - Complexity = 6
                  // Dst: (MVE_VMVNimmi32:{ *:[v4i32] } nImmVMOVI32:{ *:[i32] }:$simm)
/*135725*/      0, /*End of Scope*/
/*135726*/    0, // EndSwitchType
/*135727*/  /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(ARMISD::VRSHRsIMM),// ->135916
/*135731*/    OPC_RecordChild0, // #0 = $Vm
/*135732*/    OPC_RecordChild1, // #1 = $SIMM
/*135733*/    OPC_MoveChild1,
/*135734*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*135737*/    OPC_MoveParent,
/*135738*/    OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->135761
/*135741*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135743*/      OPC_EmitConvertToTarget, 1,
/*135745*/      OPC_EmitInteger, MVT::i32, 14, 
/*135748*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135751*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrsImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135761*/    /*SwitchType*/ 20, MVT::v4i16,// ->135783
/*135763*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135765*/      OPC_EmitConvertToTarget, 1,
/*135767*/      OPC_EmitInteger, MVT::i32, 14, 
/*135770*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135773*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrsImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135783*/    /*SwitchType*/ 20, MVT::v2i32,// ->135805
/*135785*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135787*/      OPC_EmitConvertToTarget, 1,
/*135789*/      OPC_EmitInteger, MVT::i32, 14, 
/*135792*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135795*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrsImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135805*/    /*SwitchType*/ 20, MVT::v1i64,// ->135827
/*135807*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135809*/      OPC_EmitConvertToTarget, 1,
/*135811*/      OPC_EmitInteger, MVT::i32, 14, 
/*135814*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135817*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv1i64), 0,
                    MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrsImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135827*/    /*SwitchType*/ 20, MVT::v16i8,// ->135849
/*135829*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135831*/      OPC_EmitConvertToTarget, 1,
/*135833*/      OPC_EmitInteger, MVT::i32, 14, 
/*135836*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135839*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrsImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135849*/    /*SwitchType*/ 20, MVT::v8i16,// ->135871
/*135851*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135853*/      OPC_EmitConvertToTarget, 1,
/*135855*/      OPC_EmitInteger, MVT::i32, 14, 
/*135858*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135861*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrsImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135871*/    /*SwitchType*/ 20, MVT::v4i32,// ->135893
/*135873*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135875*/      OPC_EmitConvertToTarget, 1,
/*135877*/      OPC_EmitInteger, MVT::i32, 14, 
/*135880*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135883*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrsImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135893*/    /*SwitchType*/ 20, MVT::v2i64,// ->135915
/*135895*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135897*/      OPC_EmitConvertToTarget, 1,
/*135899*/      OPC_EmitInteger, MVT::i32, 14, 
/*135902*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135905*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRsv2i64), 0,
                    MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshrsImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135915*/    0, // EndSwitchType
/*135916*/  /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(ARMISD::VRSHRuIMM),// ->136105
/*135920*/    OPC_RecordChild0, // #0 = $Vm
/*135921*/    OPC_RecordChild1, // #1 = $SIMM
/*135922*/    OPC_MoveChild1,
/*135923*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*135926*/    OPC_MoveParent,
/*135927*/    OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->135950
/*135930*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135932*/      OPC_EmitConvertToTarget, 1,
/*135934*/      OPC_EmitInteger, MVT::i32, 14, 
/*135937*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135940*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshruImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135950*/    /*SwitchType*/ 20, MVT::v4i16,// ->135972
/*135952*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135954*/      OPC_EmitConvertToTarget, 1,
/*135956*/      OPC_EmitInteger, MVT::i32, 14, 
/*135959*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135962*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshruImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135972*/    /*SwitchType*/ 20, MVT::v2i32,// ->135994
/*135974*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135976*/      OPC_EmitConvertToTarget, 1,
/*135978*/      OPC_EmitInteger, MVT::i32, 14, 
/*135981*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*135984*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshruImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*135994*/    /*SwitchType*/ 20, MVT::v1i64,// ->136016
/*135996*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*135998*/      OPC_EmitConvertToTarget, 1,
/*136000*/      OPC_EmitInteger, MVT::i32, 14, 
/*136003*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136006*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv1i64), 0,
                    MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshruImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136016*/    /*SwitchType*/ 20, MVT::v16i8,// ->136038
/*136018*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136020*/      OPC_EmitConvertToTarget, 1,
/*136022*/      OPC_EmitInteger, MVT::i32, 14, 
/*136025*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136028*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshruImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136038*/    /*SwitchType*/ 20, MVT::v8i16,// ->136060
/*136040*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136042*/      OPC_EmitConvertToTarget, 1,
/*136044*/      OPC_EmitInteger, MVT::i32, 14, 
/*136047*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136050*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshruImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136060*/    /*SwitchType*/ 20, MVT::v4i32,// ->136082
/*136062*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136064*/      OPC_EmitConvertToTarget, 1,
/*136066*/      OPC_EmitInteger, MVT::i32, 14, 
/*136069*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136072*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshruImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136082*/    /*SwitchType*/ 20, MVT::v2i64,// ->136104
/*136084*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136086*/      OPC_EmitConvertToTarget, 1,
/*136088*/      OPC_EmitInteger, MVT::i32, 14, 
/*136091*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136094*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VRSHRuv2i64), 0,
                    MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvrshruImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VRSHRuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136104*/    0, // EndSwitchType
/*136105*/  /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(ARMISD::VQSHLsIMM),// ->136294
/*136109*/    OPC_RecordChild0, // #0 = $Vm
/*136110*/    OPC_RecordChild1, // #1 = $SIMM
/*136111*/    OPC_MoveChild1,
/*136112*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*136115*/    OPC_MoveParent,
/*136116*/    OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->136139
/*136119*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136121*/      OPC_EmitConvertToTarget, 1,
/*136123*/      OPC_EmitInteger, MVT::i32, 14, 
/*136126*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136129*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136139*/    /*SwitchType*/ 20, MVT::v4i16,// ->136161
/*136141*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136143*/      OPC_EmitConvertToTarget, 1,
/*136145*/      OPC_EmitInteger, MVT::i32, 14, 
/*136148*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136151*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136161*/    /*SwitchType*/ 20, MVT::v2i32,// ->136183
/*136163*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136165*/      OPC_EmitConvertToTarget, 1,
/*136167*/      OPC_EmitInteger, MVT::i32, 14, 
/*136170*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136173*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136183*/    /*SwitchType*/ 20, MVT::v1i64,// ->136205
/*136185*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136187*/      OPC_EmitConvertToTarget, 1,
/*136189*/      OPC_EmitInteger, MVT::i32, 14, 
/*136192*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136195*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv1i64), 0,
                    MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136205*/    /*SwitchType*/ 20, MVT::v16i8,// ->136227
/*136207*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136209*/      OPC_EmitConvertToTarget, 1,
/*136211*/      OPC_EmitInteger, MVT::i32, 14, 
/*136214*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136217*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136227*/    /*SwitchType*/ 20, MVT::v8i16,// ->136249
/*136229*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136231*/      OPC_EmitConvertToTarget, 1,
/*136233*/      OPC_EmitInteger, MVT::i32, 14, 
/*136236*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136239*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136249*/    /*SwitchType*/ 20, MVT::v4i32,// ->136271
/*136251*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136253*/      OPC_EmitConvertToTarget, 1,
/*136255*/      OPC_EmitInteger, MVT::i32, 14, 
/*136258*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136261*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136271*/    /*SwitchType*/ 20, MVT::v2i64,// ->136293
/*136273*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136275*/      OPC_EmitConvertToTarget, 1,
/*136277*/      OPC_EmitInteger, MVT::i32, 14, 
/*136280*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136283*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsiv2i64), 0,
                    MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsiv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136293*/    0, // EndSwitchType
/*136294*/  /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(ARMISD::VQSHLuIMM),// ->136483
/*136298*/    OPC_RecordChild0, // #0 = $Vm
/*136299*/    OPC_RecordChild1, // #1 = $SIMM
/*136300*/    OPC_MoveChild1,
/*136301*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*136304*/    OPC_MoveParent,
/*136305*/    OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->136328
/*136308*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136310*/      OPC_EmitConvertToTarget, 1,
/*136312*/      OPC_EmitInteger, MVT::i32, 14, 
/*136315*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136318*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshluImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136328*/    /*SwitchType*/ 20, MVT::v4i16,// ->136350
/*136330*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136332*/      OPC_EmitConvertToTarget, 1,
/*136334*/      OPC_EmitInteger, MVT::i32, 14, 
/*136337*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136340*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshluImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136350*/    /*SwitchType*/ 20, MVT::v2i32,// ->136372
/*136352*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136354*/      OPC_EmitConvertToTarget, 1,
/*136356*/      OPC_EmitInteger, MVT::i32, 14, 
/*136359*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136362*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshluImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136372*/    /*SwitchType*/ 20, MVT::v1i64,// ->136394
/*136374*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136376*/      OPC_EmitConvertToTarget, 1,
/*136378*/      OPC_EmitInteger, MVT::i32, 14, 
/*136381*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136384*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv1i64), 0,
                    MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshluImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136394*/    /*SwitchType*/ 20, MVT::v16i8,// ->136416
/*136396*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136398*/      OPC_EmitConvertToTarget, 1,
/*136400*/      OPC_EmitInteger, MVT::i32, 14, 
/*136403*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136406*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshluImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136416*/    /*SwitchType*/ 20, MVT::v8i16,// ->136438
/*136418*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136420*/      OPC_EmitConvertToTarget, 1,
/*136422*/      OPC_EmitInteger, MVT::i32, 14, 
/*136425*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136428*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshluImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136438*/    /*SwitchType*/ 20, MVT::v4i32,// ->136460
/*136440*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136442*/      OPC_EmitConvertToTarget, 1,
/*136444*/      OPC_EmitInteger, MVT::i32, 14, 
/*136447*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136450*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshluImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136460*/    /*SwitchType*/ 20, MVT::v2i64,// ->136482
/*136462*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136464*/      OPC_EmitConvertToTarget, 1,
/*136466*/      OPC_EmitInteger, MVT::i32, 14, 
/*136469*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136472*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLuiv2i64), 0,
                    MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshluImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLuiv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136482*/    0, // EndSwitchType
/*136483*/  /*SwitchOpcode*/ 57|128,1/*185*/, TARGET_VAL(ARMISD::VQSHLsuIMM),// ->136672
/*136487*/    OPC_RecordChild0, // #0 = $Vm
/*136488*/    OPC_RecordChild1, // #1 = $SIMM
/*136489*/    OPC_MoveChild1,
/*136490*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*136493*/    OPC_MoveParent,
/*136494*/    OPC_SwitchType /*8 cases */, 20, MVT::v8i8,// ->136517
/*136497*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136499*/      OPC_EmitConvertToTarget, 1,
/*136501*/      OPC_EmitInteger, MVT::i32, 14, 
/*136504*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136507*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsuImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136517*/    /*SwitchType*/ 20, MVT::v4i16,// ->136539
/*136519*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136521*/      OPC_EmitConvertToTarget, 1,
/*136523*/      OPC_EmitInteger, MVT::i32, 14, 
/*136526*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136529*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsuImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136539*/    /*SwitchType*/ 20, MVT::v2i32,// ->136561
/*136541*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136543*/      OPC_EmitConvertToTarget, 1,
/*136545*/      OPC_EmitInteger, MVT::i32, 14, 
/*136548*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136551*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsuImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136561*/    /*SwitchType*/ 20, MVT::v1i64,// ->136583
/*136563*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136565*/      OPC_EmitConvertToTarget, 1,
/*136567*/      OPC_EmitInteger, MVT::i32, 14, 
/*136570*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136573*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv1i64), 0,
                    MVT::v1i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsuImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136583*/    /*SwitchType*/ 20, MVT::v16i8,// ->136605
/*136585*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136587*/      OPC_EmitConvertToTarget, 1,
/*136589*/      OPC_EmitInteger, MVT::i32, 14, 
/*136592*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136595*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv16i8), 0,
                    MVT::v16i8, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsuImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136605*/    /*SwitchType*/ 20, MVT::v8i16,// ->136627
/*136607*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136609*/      OPC_EmitConvertToTarget, 1,
/*136611*/      OPC_EmitInteger, MVT::i32, 14, 
/*136614*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136617*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv8i16), 0,
                    MVT::v8i16, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsuImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136627*/    /*SwitchType*/ 20, MVT::v4i32,// ->136649
/*136629*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136631*/      OPC_EmitConvertToTarget, 1,
/*136633*/      OPC_EmitInteger, MVT::i32, 14, 
/*136636*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136639*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv4i32), 0,
                    MVT::v4i32, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsuImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136649*/    /*SwitchType*/ 20, MVT::v2i64,// ->136671
/*136651*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136653*/      OPC_EmitConvertToTarget, 1,
/*136655*/      OPC_EmitInteger, MVT::i32, 14, 
/*136658*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136661*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSHLsuv2i64), 0,
                    MVT::v2i64, 4/*#Ops*/, 0, 2, 3, 4, 
                // Src: (NEONvqshlsuImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VQSHLsuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136671*/    0, // EndSwitchType
/*136672*/  /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(ARMISD::VSLIIMM),// ->136870
/*136676*/    OPC_RecordChild0, // #0 = $src1
/*136677*/    OPC_RecordChild1, // #1 = $Vm
/*136678*/    OPC_RecordChild2, // #2 = $SIMM
/*136679*/    OPC_MoveChild2,
/*136680*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*136683*/    OPC_MoveParent,
/*136684*/    OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->136708
/*136687*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136689*/      OPC_EmitConvertToTarget, 2,
/*136691*/      OPC_EmitInteger, MVT::i32, 14, 
/*136694*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136697*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv8i8), 0,
                    MVT::v8i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsliImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136708*/    /*SwitchType*/ 21, MVT::v4i16,// ->136731
/*136710*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136712*/      OPC_EmitConvertToTarget, 2,
/*136714*/      OPC_EmitInteger, MVT::i32, 14, 
/*136717*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136720*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv4i16), 0,
                    MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsliImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136731*/    /*SwitchType*/ 21, MVT::v2i32,// ->136754
/*136733*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136735*/      OPC_EmitConvertToTarget, 2,
/*136737*/      OPC_EmitInteger, MVT::i32, 14, 
/*136740*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136743*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv2i32), 0,
                    MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsliImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136754*/    /*SwitchType*/ 21, MVT::v1i64,// ->136777
/*136756*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136758*/      OPC_EmitConvertToTarget, 2,
/*136760*/      OPC_EmitInteger, MVT::i32, 14, 
/*136763*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136766*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv1i64), 0,
                    MVT::v1i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsliImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136777*/    /*SwitchType*/ 21, MVT::v16i8,// ->136800
/*136779*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136781*/      OPC_EmitConvertToTarget, 2,
/*136783*/      OPC_EmitInteger, MVT::i32, 14, 
/*136786*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136789*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv16i8), 0,
                    MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsliImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136800*/    /*SwitchType*/ 21, MVT::v8i16,// ->136823
/*136802*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136804*/      OPC_EmitConvertToTarget, 2,
/*136806*/      OPC_EmitInteger, MVT::i32, 14, 
/*136809*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136812*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv8i16), 0,
                    MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsliImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136823*/    /*SwitchType*/ 21, MVT::v4i32,// ->136846
/*136825*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136827*/      OPC_EmitConvertToTarget, 2,
/*136829*/      OPC_EmitInteger, MVT::i32, 14, 
/*136832*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136835*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv4i32), 0,
                    MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsliImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136846*/    /*SwitchType*/ 21, MVT::v2i64,// ->136869
/*136848*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136850*/      OPC_EmitConvertToTarget, 2,
/*136852*/      OPC_EmitInteger, MVT::i32, 14, 
/*136855*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136858*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSLIv2i64), 0,
                    MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsliImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSLIv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136869*/    0, // EndSwitchType
/*136870*/  /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(ARMISD::VSRIIMM),// ->137068
/*136874*/    OPC_RecordChild0, // #0 = $src1
/*136875*/    OPC_RecordChild1, // #1 = $Vm
/*136876*/    OPC_RecordChild2, // #2 = $SIMM
/*136877*/    OPC_MoveChild2,
/*136878*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*136881*/    OPC_MoveParent,
/*136882*/    OPC_SwitchType /*8 cases */, 21, MVT::v8i8,// ->136906
/*136885*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136887*/      OPC_EmitConvertToTarget, 2,
/*136889*/      OPC_EmitInteger, MVT::i32, 14, 
/*136892*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136895*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv8i8), 0,
                    MVT::v8i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsriImm:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$src1, DPR:{ *:[v8i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136906*/    /*SwitchType*/ 21, MVT::v4i16,// ->136929
/*136908*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136910*/      OPC_EmitConvertToTarget, 2,
/*136912*/      OPC_EmitInteger, MVT::i32, 14, 
/*136915*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136918*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv4i16), 0,
                    MVT::v4i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsriImm:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$src1, DPR:{ *:[v4i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136929*/    /*SwitchType*/ 21, MVT::v2i32,// ->136952
/*136931*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136933*/      OPC_EmitConvertToTarget, 2,
/*136935*/      OPC_EmitInteger, MVT::i32, 14, 
/*136938*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136941*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv2i32), 0,
                    MVT::v2i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsriImm:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$src1, DPR:{ *:[v2i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136952*/    /*SwitchType*/ 21, MVT::v1i64,// ->136975
/*136954*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136956*/      OPC_EmitConvertToTarget, 2,
/*136958*/      OPC_EmitInteger, MVT::i32, 14, 
/*136961*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136964*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv1i64), 0,
                    MVT::v1i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsriImm:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$src1, DPR:{ *:[v1i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136975*/    /*SwitchType*/ 21, MVT::v16i8,// ->136998
/*136977*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*136979*/      OPC_EmitConvertToTarget, 2,
/*136981*/      OPC_EmitInteger, MVT::i32, 14, 
/*136984*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*136987*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv16i8), 0,
                    MVT::v16i8, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsriImm:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$src1, QPR:{ *:[v16i8] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*136998*/    /*SwitchType*/ 21, MVT::v8i16,// ->137021
/*137000*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137002*/      OPC_EmitConvertToTarget, 2,
/*137004*/      OPC_EmitInteger, MVT::i32, 14, 
/*137007*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137010*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv8i16), 0,
                    MVT::v8i16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsriImm:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$src1, QPR:{ *:[v8i16] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*137021*/    /*SwitchType*/ 21, MVT::v4i32,// ->137044
/*137023*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137025*/      OPC_EmitConvertToTarget, 2,
/*137027*/      OPC_EmitInteger, MVT::i32, 14, 
/*137030*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137033*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv4i32), 0,
                    MVT::v4i32, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsriImm:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$src1, QPR:{ *:[v4i32] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*137044*/    /*SwitchType*/ 21, MVT::v2i64,// ->137067
/*137046*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137048*/      OPC_EmitConvertToTarget, 2,
/*137050*/      OPC_EmitInteger, MVT::i32, 14, 
/*137053*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137056*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VSRIv2i64), 0,
                    MVT::v2i64, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvsriImm:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VSRIv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$src1, QPR:{ *:[v2i64] }:$Vm, (imm:{ *:[i32] }):$SIMM)
/*137067*/    0, // EndSwitchType
/*137068*/  /*SwitchOpcode*/ 43|128,1/*171*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->137243
/*137072*/    OPC_RecordChild0, // #0 = $src
/*137073*/    OPC_Scope, 27, /*->137102*/ // 6 children in Scope
/*137075*/      OPC_CheckChild0Type, MVT::v16i8,
/*137077*/      OPC_RecordChild1, // #1 = $start
/*137078*/      OPC_MoveChild1,
/*137079*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*137082*/      OPC_CheckType, MVT::i32,
/*137084*/      OPC_MoveParent,
/*137085*/      OPC_CheckType, MVT::v8i8,
/*137087*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137089*/      OPC_EmitConvertToTarget, 1,
/*137091*/      OPC_EmitNodeXForm, 15, 2, // DSubReg_i8_reg
/*137094*/      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))
/*137102*/    /*Scope*/ 27, /*->137130*/
/*137103*/      OPC_CheckChild0Type, MVT::v8i16,
/*137105*/      OPC_RecordChild1, // #1 = $start
/*137106*/      OPC_MoveChild1,
/*137107*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*137110*/      OPC_CheckType, MVT::i32,
/*137112*/      OPC_MoveParent,
/*137113*/      OPC_CheckType, MVT::v4i16,
/*137115*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137117*/      OPC_EmitConvertToTarget, 1,
/*137119*/      OPC_EmitNodeXForm, 5, 2, // DSubReg_i16_reg
/*137122*/      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))
/*137130*/    /*Scope*/ 27, /*->137158*/
/*137131*/      OPC_CheckChild0Type, MVT::v4i32,
/*137133*/      OPC_RecordChild1, // #1 = $start
/*137134*/      OPC_MoveChild1,
/*137135*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*137138*/      OPC_CheckType, MVT::i32,
/*137140*/      OPC_MoveParent,
/*137141*/      OPC_CheckType, MVT::v2i32,
/*137143*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137145*/      OPC_EmitConvertToTarget, 1,
/*137147*/      OPC_EmitNodeXForm, 7, 2, // DSubReg_i32_reg
/*137150*/      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))
/*137158*/    /*Scope*/ 27, /*->137186*/
/*137159*/      OPC_CheckChild0Type, MVT::v2i64,
/*137161*/      OPC_RecordChild1, // #1 = $start
/*137162*/      OPC_MoveChild1,
/*137163*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*137166*/      OPC_CheckType, MVT::i32,
/*137168*/      OPC_MoveParent,
/*137169*/      OPC_CheckType, MVT::v1i64,
/*137171*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137173*/      OPC_EmitConvertToTarget, 1,
/*137175*/      OPC_EmitNodeXForm, 19, 2, // DSubReg_f64_reg
/*137178*/      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))
/*137186*/    /*Scope*/ 27, /*->137214*/
/*137187*/      OPC_CheckChild0Type, MVT::v4f32,
/*137189*/      OPC_RecordChild1, // #1 = $start
/*137190*/      OPC_MoveChild1,
/*137191*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*137194*/      OPC_CheckType, MVT::i32,
/*137196*/      OPC_MoveParent,
/*137197*/      OPC_CheckType, MVT::v2f32,
/*137199*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137201*/      OPC_EmitConvertToTarget, 1,
/*137203*/      OPC_EmitNodeXForm, 7, 2, // DSubReg_i32_reg
/*137206*/      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))
/*137214*/    /*Scope*/ 27, /*->137242*/
/*137215*/      OPC_CheckChild0Type, MVT::v8f16,
/*137217*/      OPC_RecordChild1, // #1 = $start
/*137218*/      OPC_MoveChild1,
/*137219*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*137222*/      OPC_CheckType, MVT::i32,
/*137224*/      OPC_MoveParent,
/*137225*/      OPC_CheckType, MVT::v4f16,
/*137227*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137229*/      OPC_EmitConvertToTarget, 1,
/*137231*/      OPC_EmitNodeXForm, 5, 2, // DSubReg_i16_reg
/*137234*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::v4f16, 2/*#Ops*/, 0, 3, 
                // Src: (vector_extract_subvec:{ *:[v4f16] } QPR:{ *:[v8f16] }:$src, (imm:{ *:[i32] }):$start) - Complexity = 6
                // Dst: (EXTRACT_SUBREG:{ *:[v4f16] } QPR:{ *:[v8f16] }:$src, (DSubReg_i16_reg:{ *:[i32] } (imm:{ *:[i32] }):$start))
/*137242*/    0, /*End of Scope*/
/*137243*/  /*SwitchOpcode*/ 7|128,2/*263*/, TARGET_VAL(ARMISD::VEXT),// ->137510
/*137247*/    OPC_RecordChild0, // #0 = $Vn
/*137248*/    OPC_RecordChild1, // #1 = $Vm
/*137249*/    OPC_RecordChild2, // #2 = $index
/*137250*/    OPC_MoveChild2,
/*137251*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*137254*/    OPC_MoveParent,
/*137255*/    OPC_SwitchType /*11 cases */, 21, MVT::v8i8,// ->137279
/*137258*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137260*/      OPC_EmitConvertToTarget, 2,
/*137262*/      OPC_EmitInteger, MVT::i32, 14, 
/*137265*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137268*/      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)
/*137279*/    /*SwitchType*/ 21, MVT::v4i16,// ->137302
/*137281*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137283*/      OPC_EmitConvertToTarget, 2,
/*137285*/      OPC_EmitInteger, MVT::i32, 14, 
/*137288*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137291*/      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)
/*137302*/    /*SwitchType*/ 21, MVT::v2i32,// ->137325
/*137304*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137306*/      OPC_EmitConvertToTarget, 2,
/*137308*/      OPC_EmitInteger, MVT::i32, 14, 
/*137311*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137314*/      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)
/*137325*/    /*SwitchType*/ 21, MVT::v16i8,// ->137348
/*137327*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137329*/      OPC_EmitConvertToTarget, 2,
/*137331*/      OPC_EmitInteger, MVT::i32, 14, 
/*137334*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137337*/      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)
/*137348*/    /*SwitchType*/ 21, MVT::v8i16,// ->137371
/*137350*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137352*/      OPC_EmitConvertToTarget, 2,
/*137354*/      OPC_EmitInteger, MVT::i32, 14, 
/*137357*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137360*/      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)
/*137371*/    /*SwitchType*/ 21, MVT::v4i32,// ->137394
/*137373*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137375*/      OPC_EmitConvertToTarget, 2,
/*137377*/      OPC_EmitInteger, MVT::i32, 14, 
/*137380*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137383*/      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)
/*137394*/    /*SwitchType*/ 21, MVT::v2i64,// ->137417
/*137396*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137398*/      OPC_EmitConvertToTarget, 2,
/*137400*/      OPC_EmitInteger, MVT::i32, 14, 
/*137403*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137406*/      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)
/*137417*/    /*SwitchType*/ 21, MVT::v4f16,// ->137440
/*137419*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137421*/      OPC_EmitConvertToTarget, 2,
/*137423*/      OPC_EmitInteger, MVT::i32, 14, 
/*137426*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137429*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VEXTd16), 0,
                    MVT::v4f16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvext:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$index) - Complexity = 6
                // Dst: (VEXTd16:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vn, DPR:{ *:[v4f16] }:$Vm, (imm:{ *:[i32] }):$index)
/*137440*/    /*SwitchType*/ 21, MVT::v2f32,// ->137463
/*137442*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137444*/      OPC_EmitConvertToTarget, 2,
/*137446*/      OPC_EmitInteger, MVT::i32, 14, 
/*137449*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137452*/      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)
/*137463*/    /*SwitchType*/ 21, MVT::v8f16,// ->137486
/*137465*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137467*/      OPC_EmitConvertToTarget, 2,
/*137469*/      OPC_EmitInteger, MVT::i32, 14, 
/*137472*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137475*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VEXTq16), 0,
                    MVT::v8f16, 5/*#Ops*/, 0, 1, 3, 4, 5, 
                // Src: (NEONvext:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$index) - Complexity = 6
                // Dst: (VEXTq16:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vn, QPR:{ *:[v8f16] }:$Vm, (imm:{ *:[i32] }):$index)
/*137486*/    /*SwitchType*/ 21, MVT::v4f32,// ->137509
/*137488*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137490*/      OPC_EmitConvertToTarget, 2,
/*137492*/      OPC_EmitInteger, MVT::i32, 14, 
/*137495*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137498*/      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)
/*137509*/    0, // EndSwitchType
/*137510*/  /*SwitchOpcode*/ 70|128,2/*326*/, TARGET_VAL(ARMISD::VSHLu),// ->137840
/*137514*/    OPC_RecordChild0, // #0 = $Qm
/*137515*/    OPC_Scope, 70, /*->137587*/ // 2 children in Scope
/*137517*/      OPC_MoveChild1,
/*137518*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/*137521*/      OPC_RecordChild0, // #1 = $Rm
/*137522*/      OPC_CheckChild0Type, MVT::i32,
/*137524*/      OPC_MoveParent,
/*137525*/      OPC_SwitchType /*3 cases */, 18, MVT::v4i32,// ->137546
/*137528*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*137530*/        OPC_EmitInteger, MVT::i32, 0, 
/*137533*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137536*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qru32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshlu:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (MVE_VSHL_qru32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, GPR:{ *:[i32] }:$Rm)
/*137546*/      /*SwitchType*/ 18, MVT::v8i16,// ->137566
/*137548*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*137550*/        OPC_EmitInteger, MVT::i32, 0, 
/*137553*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137556*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qru16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshlu:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (MVE_VSHL_qru16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, GPR:{ *:[i32] }:$Rm)
/*137566*/      /*SwitchType*/ 18, MVT::v16i8,// ->137586
/*137568*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*137570*/        OPC_EmitInteger, MVT::i32, 0, 
/*137573*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137576*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qru8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshlu:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (MVE_VSHL_qru8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, GPR:{ *:[i32] }:$Rm)
/*137586*/      0, // EndSwitchType
/*137587*/    /*Scope*/ 122|128,1/*250*/, /*->137839*/
/*137589*/      OPC_RecordChild1, // #1 = $Dm
/*137590*/      OPC_SwitchType /*8 cases */, 18, MVT::v8i8,// ->137611
/*137593*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137595*/        OPC_EmitInteger, MVT::i32, 14, 
/*137598*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137601*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshlu:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Dn, DPR:{ *:[v8i8] }:$Dm) - Complexity = 3
                  // Dst: (VSHLuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Dn, DPR:{ *:[v8i8] }:$Dm)
/*137611*/      /*SwitchType*/ 18, MVT::v4i16,// ->137631
/*137613*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137615*/        OPC_EmitInteger, MVT::i32, 14, 
/*137618*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137621*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshlu:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Dn, DPR:{ *:[v4i16] }:$Dm) - Complexity = 3
                  // Dst: (VSHLuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Dn, DPR:{ *:[v4i16] }:$Dm)
/*137631*/      /*SwitchType*/ 18, MVT::v2i32,// ->137651
/*137633*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137635*/        OPC_EmitInteger, MVT::i32, 14, 
/*137638*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137641*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshlu:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Dn, DPR:{ *:[v2i32] }:$Dm) - Complexity = 3
                  // Dst: (VSHLuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Dn, DPR:{ *:[v2i32] }:$Dm)
/*137651*/      /*SwitchType*/ 18, MVT::v1i64,// ->137671
/*137653*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137655*/        OPC_EmitInteger, MVT::i32, 14, 
/*137658*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137661*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshlu:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Dn, DPR:{ *:[v1i64] }:$Dm) - Complexity = 3
                  // Dst: (VSHLuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Dn, DPR:{ *:[v1i64] }:$Dm)
/*137671*/      /*SwitchType*/ 47, MVT::v16i8,// ->137720
/*137673*/        OPC_Scope, 18, /*->137693*/ // 2 children in Scope
/*137675*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137677*/          OPC_EmitInteger, MVT::i32, 14, 
/*137680*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137683*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv16i8), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshlu:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Dn, QPR:{ *:[v16i8] }:$Dm) - Complexity = 3
                    // Dst: (VSHLuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Dn, QPR:{ *:[v16i8] }:$Dm)
/*137693*/        /*Scope*/ 25, /*->137719*/
/*137694*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*137696*/          OPC_EmitInteger, MVT::i32, 0, 
/*137699*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137702*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*137708*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecu8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvshlu:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VSHL_by_vecu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/*137719*/        0, /*End of Scope*/
/*137720*/      /*SwitchType*/ 47, MVT::v8i16,// ->137769
/*137722*/        OPC_Scope, 18, /*->137742*/ // 2 children in Scope
/*137724*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137726*/          OPC_EmitInteger, MVT::i32, 14, 
/*137729*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137732*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshlu:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Dn, QPR:{ *:[v8i16] }:$Dm) - Complexity = 3
                    // Dst: (VSHLuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Dn, QPR:{ *:[v8i16] }:$Dm)
/*137742*/        /*Scope*/ 25, /*->137768*/
/*137743*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*137745*/          OPC_EmitInteger, MVT::i32, 0, 
/*137748*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137751*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*137757*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecu16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvshlu:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VSHL_by_vecu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/*137768*/        0, /*End of Scope*/
/*137769*/      /*SwitchType*/ 47, MVT::v4i32,// ->137818
/*137771*/        OPC_Scope, 18, /*->137791*/ // 2 children in Scope
/*137773*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137775*/          OPC_EmitInteger, MVT::i32, 14, 
/*137778*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137781*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshlu:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Dn, QPR:{ *:[v4i32] }:$Dm) - Complexity = 3
                    // Dst: (VSHLuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Dn, QPR:{ *:[v4i32] }:$Dm)
/*137791*/        /*Scope*/ 25, /*->137817*/
/*137792*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*137794*/          OPC_EmitInteger, MVT::i32, 0, 
/*137797*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137800*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*137806*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecu32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvshlu:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VSHL_by_vecu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/*137817*/        0, /*End of Scope*/
/*137818*/      /*SwitchType*/ 18, MVT::v2i64,// ->137838
/*137820*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137822*/        OPC_EmitInteger, MVT::i32, 14, 
/*137825*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137828*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLuv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshlu:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Dn, QPR:{ *:[v2i64] }:$Dm) - Complexity = 3
                  // Dst: (VSHLuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Dn, QPR:{ *:[v2i64] }:$Dm)
/*137838*/      0, // EndSwitchType
/*137839*/    0, /*End of Scope*/
/*137840*/  /*SwitchOpcode*/ 70|128,2/*326*/, TARGET_VAL(ARMISD::VSHLs),// ->138170
/*137844*/    OPC_RecordChild0, // #0 = $Qm
/*137845*/    OPC_Scope, 70, /*->137917*/ // 2 children in Scope
/*137847*/      OPC_MoveChild1,
/*137848*/      OPC_CheckOpcode, TARGET_VAL(ARMISD::VDUP),
/*137851*/      OPC_RecordChild0, // #1 = $Rm
/*137852*/      OPC_CheckChild0Type, MVT::i32,
/*137854*/      OPC_MoveParent,
/*137855*/      OPC_SwitchType /*3 cases */, 18, MVT::v4i32,// ->137876
/*137858*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*137860*/        OPC_EmitInteger, MVT::i32, 0, 
/*137863*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137866*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qrs32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshls:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, (ARMvdup:{ *:[v4i32] } GPR:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (MVE_VSHL_qrs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, GPR:{ *:[i32] }:$Rm)
/*137876*/      /*SwitchType*/ 18, MVT::v8i16,// ->137896
/*137878*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*137880*/        OPC_EmitInteger, MVT::i32, 0, 
/*137883*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137886*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qrs16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshls:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, (ARMvdup:{ *:[v8i16] } GPR:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (MVE_VSHL_qrs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, GPR:{ *:[i32] }:$Rm)
/*137896*/      /*SwitchType*/ 18, MVT::v16i8,// ->137916
/*137898*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*137900*/        OPC_EmitInteger, MVT::i32, 0, 
/*137903*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137906*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_qrs8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshls:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, (ARMvdup:{ *:[v16i8] } GPR:{ *:[i32] }:$Rm)) - Complexity = 6
                  // Dst: (MVE_VSHL_qrs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, GPR:{ *:[i32] }:$Rm)
/*137916*/      0, // EndSwitchType
/*137917*/    /*Scope*/ 122|128,1/*250*/, /*->138169*/
/*137919*/      OPC_RecordChild1, // #1 = $Dm
/*137920*/      OPC_SwitchType /*8 cases */, 18, MVT::v8i8,// ->137941
/*137923*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137925*/        OPC_EmitInteger, MVT::i32, 14, 
/*137928*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137931*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv8i8), 0,
                      MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshls:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Dn, DPR:{ *:[v8i8] }:$Dm) - Complexity = 3
                  // Dst: (VSHLsv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Dn, DPR:{ *:[v8i8] }:$Dm)
/*137941*/      /*SwitchType*/ 18, MVT::v4i16,// ->137961
/*137943*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137945*/        OPC_EmitInteger, MVT::i32, 14, 
/*137948*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137951*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv4i16), 0,
                      MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshls:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Dn, DPR:{ *:[v4i16] }:$Dm) - Complexity = 3
                  // Dst: (VSHLsv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Dn, DPR:{ *:[v4i16] }:$Dm)
/*137961*/      /*SwitchType*/ 18, MVT::v2i32,// ->137981
/*137963*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137965*/        OPC_EmitInteger, MVT::i32, 14, 
/*137968*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137971*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv2i32), 0,
                      MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshls:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Dn, DPR:{ *:[v2i32] }:$Dm) - Complexity = 3
                  // Dst: (VSHLsv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Dn, DPR:{ *:[v2i32] }:$Dm)
/*137981*/      /*SwitchType*/ 18, MVT::v1i64,// ->138001
/*137983*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*137985*/        OPC_EmitInteger, MVT::i32, 14, 
/*137988*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*137991*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv1i64), 0,
                      MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshls:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Dn, DPR:{ *:[v1i64] }:$Dm) - Complexity = 3
                  // Dst: (VSHLsv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Dn, DPR:{ *:[v1i64] }:$Dm)
/*138001*/      /*SwitchType*/ 47, MVT::v16i8,// ->138050
/*138003*/        OPC_Scope, 18, /*->138023*/ // 2 children in Scope
/*138005*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138007*/          OPC_EmitInteger, MVT::i32, 14, 
/*138010*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138013*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv16i8), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshls:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Dn, QPR:{ *:[v16i8] }:$Dm) - Complexity = 3
                    // Dst: (VSHLsv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Dn, QPR:{ *:[v16i8] }:$Dm)
/*138023*/        /*Scope*/ 25, /*->138049*/
/*138024*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*138026*/          OPC_EmitInteger, MVT::i32, 0, 
/*138029*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138032*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*138038*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecs8), 0,
                        MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvshls:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VSHL_by_vecs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/*138049*/        0, /*End of Scope*/
/*138050*/      /*SwitchType*/ 47, MVT::v8i16,// ->138099
/*138052*/        OPC_Scope, 18, /*->138072*/ // 2 children in Scope
/*138054*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138056*/          OPC_EmitInteger, MVT::i32, 14, 
/*138059*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138062*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv8i16), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshls:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Dn, QPR:{ *:[v8i16] }:$Dm) - Complexity = 3
                    // Dst: (VSHLsv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Dn, QPR:{ *:[v8i16] }:$Dm)
/*138072*/        /*Scope*/ 25, /*->138098*/
/*138073*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*138075*/          OPC_EmitInteger, MVT::i32, 0, 
/*138078*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138081*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*138087*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecs16), 0,
                        MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvshls:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VSHL_by_vecs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/*138098*/        0, /*End of Scope*/
/*138099*/      /*SwitchType*/ 47, MVT::v4i32,// ->138148
/*138101*/        OPC_Scope, 18, /*->138121*/ // 2 children in Scope
/*138103*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138105*/          OPC_EmitInteger, MVT::i32, 14, 
/*138108*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138111*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv4i32), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (ARMvshls:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Dn, QPR:{ *:[v4i32] }:$Dm) - Complexity = 3
                    // Dst: (VSHLsv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Dn, QPR:{ *:[v4i32] }:$Dm)
/*138121*/        /*Scope*/ 25, /*->138147*/
/*138122*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*138124*/          OPC_EmitInteger, MVT::i32, 0, 
/*138127*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138130*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*138136*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VSHL_by_vecs32), 0,
                        MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                    // Src: (ARMvshls:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                    // Dst: (MVE_VSHL_by_vecs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/*138147*/        0, /*End of Scope*/
/*138148*/      /*SwitchType*/ 18, MVT::v2i64,// ->138168
/*138150*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138152*/        OPC_EmitInteger, MVT::i32, 14, 
/*138155*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138158*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VSHLsv2i64), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvshls:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Dn, QPR:{ *:[v2i64] }:$Dm) - Complexity = 3
                  // Dst: (VSHLsv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Dn, QPR:{ *:[v2i64] }:$Dm)
/*138168*/      0, // EndSwitchType
/*138169*/    0, /*End of Scope*/
/*138170*/  /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(ISD::UADDSAT),// ->138425
/*138174*/    OPC_RecordChild0, // #0 = $Vn
/*138175*/    OPC_RecordChild1, // #1 = $Vm
/*138176*/    OPC_SwitchType /*8 cases */, 18, MVT::v4i16,// ->138197
/*138179*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138181*/      OPC_EmitInteger, MVT::i32, 14, 
/*138184*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138187*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (uaddsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VQADDuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/*138197*/    /*SwitchType*/ 18, MVT::v2i32,// ->138217
/*138199*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138201*/      OPC_EmitInteger, MVT::i32, 14, 
/*138204*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138207*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (uaddsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VQADDuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*138217*/    /*SwitchType*/ 47, MVT::v8i16,// ->138266
/*138219*/      OPC_Scope, 18, /*->138239*/ // 2 children in Scope
/*138221*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138223*/        OPC_EmitInteger, MVT::i32, 14, 
/*138226*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138229*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (uaddsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VQADDuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/*138239*/      /*Scope*/ 25, /*->138265*/
/*138240*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*138242*/        OPC_EmitInteger, MVT::i32, 0, 
/*138245*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138248*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*138254*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQADDu16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (uaddsat:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VQADDu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/*138265*/      0, /*End of Scope*/
/*138266*/    /*SwitchType*/ 47, MVT::v4i32,// ->138315
/*138268*/      OPC_Scope, 18, /*->138288*/ // 2 children in Scope
/*138270*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138272*/        OPC_EmitInteger, MVT::i32, 14, 
/*138275*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138278*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (uaddsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VQADDuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*138288*/      /*Scope*/ 25, /*->138314*/
/*138289*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*138291*/        OPC_EmitInteger, MVT::i32, 0, 
/*138294*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138297*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*138303*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQADDu32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (uaddsat:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VQADDu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/*138314*/      0, /*End of Scope*/
/*138315*/    /*SwitchType*/ 18, MVT::v8i8,// ->138335
/*138317*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138319*/      OPC_EmitInteger, MVT::i32, 14, 
/*138322*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138325*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (uaddsat:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VQADDuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/*138335*/    /*SwitchType*/ 47, MVT::v16i8,// ->138384
/*138337*/      OPC_Scope, 18, /*->138357*/ // 2 children in Scope
/*138339*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138341*/        OPC_EmitInteger, MVT::i32, 14, 
/*138344*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138347*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (uaddsat:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                  // Dst: (VQADDuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/*138357*/      /*Scope*/ 25, /*->138383*/
/*138358*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*138360*/        OPC_EmitInteger, MVT::i32, 0, 
/*138363*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138366*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*138372*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQADDu8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (uaddsat:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VQADDu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/*138383*/      0, /*End of Scope*/
/*138384*/    /*SwitchType*/ 18, MVT::v1i64,// ->138404
/*138386*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138388*/      OPC_EmitInteger, MVT::i32, 14, 
/*138391*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138394*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv1i64), 0,
                    MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (uaddsat:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) - Complexity = 3
                // Dst: (VQADDuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*138404*/    /*SwitchType*/ 18, MVT::v2i64,// ->138424
/*138406*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138408*/      OPC_EmitInteger, MVT::i32, 14, 
/*138411*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138414*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQADDuv2i64), 0,
                    MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (uaddsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 3
                // Dst: (VQADDuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*138424*/    0, // EndSwitchType
/*138425*/  /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(ISD::USUBSAT),// ->138680
/*138429*/    OPC_RecordChild0, // #0 = $Vn
/*138430*/    OPC_RecordChild1, // #1 = $Vm
/*138431*/    OPC_SwitchType /*8 cases */, 18, MVT::v4i16,// ->138452
/*138434*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138436*/      OPC_EmitInteger, MVT::i32, 14, 
/*138439*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138442*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv4i16), 0,
                    MVT::v4i16, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (usubsat:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VQSUBuv4i16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vn, DPR:{ *:[v4i16] }:$Vm)
/*138452*/    /*SwitchType*/ 18, MVT::v2i32,// ->138472
/*138454*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138456*/      OPC_EmitInteger, MVT::i32, 14, 
/*138459*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138462*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv2i32), 0,
                    MVT::v2i32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (usubsat:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VQSUBuv2i32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vn, DPR:{ *:[v2i32] }:$Vm)
/*138472*/    /*SwitchType*/ 47, MVT::v8i16,// ->138521
/*138474*/      OPC_Scope, 18, /*->138494*/ // 2 children in Scope
/*138476*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138478*/        OPC_EmitInteger, MVT::i32, 14, 
/*138481*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138484*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv8i16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (usubsat:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VQSUBuv8i16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vn, QPR:{ *:[v8i16] }:$Vm)
/*138494*/      /*Scope*/ 25, /*->138520*/
/*138495*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*138497*/        OPC_EmitInteger, MVT::i32, 0, 
/*138500*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138503*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*138509*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSUBu16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (usubsat:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VQSUBu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/*138520*/      0, /*End of Scope*/
/*138521*/    /*SwitchType*/ 47, MVT::v4i32,// ->138570
/*138523*/      OPC_Scope, 18, /*->138543*/ // 2 children in Scope
/*138525*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138527*/        OPC_EmitInteger, MVT::i32, 14, 
/*138530*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138533*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv4i32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (usubsat:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VQSUBuv4i32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vn, QPR:{ *:[v4i32] }:$Vm)
/*138543*/      /*Scope*/ 25, /*->138569*/
/*138544*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*138546*/        OPC_EmitInteger, MVT::i32, 0, 
/*138549*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138552*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*138558*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSUBu32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (usubsat:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VQSUBu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/*138569*/      0, /*End of Scope*/
/*138570*/    /*SwitchType*/ 18, MVT::v8i8,// ->138590
/*138572*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138574*/      OPC_EmitInteger, MVT::i32, 14, 
/*138577*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138580*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv8i8), 0,
                    MVT::v8i8, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (usubsat:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VQSUBuv8i8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vn, DPR:{ *:[v8i8] }:$Vm)
/*138590*/    /*SwitchType*/ 47, MVT::v16i8,// ->138639
/*138592*/      OPC_Scope, 18, /*->138612*/ // 2 children in Scope
/*138594*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138596*/        OPC_EmitInteger, MVT::i32, 14, 
/*138599*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138602*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv16i8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (usubsat:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                  // Dst: (VQSUBuv16i8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vn, QPR:{ *:[v16i8] }:$Vm)
/*138612*/      /*Scope*/ 25, /*->138638*/
/*138613*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*138615*/        OPC_EmitInteger, MVT::i32, 0, 
/*138618*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138621*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*138627*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VQSUBu8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (usubsat:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VQSUBu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/*138638*/      0, /*End of Scope*/
/*138639*/    /*SwitchType*/ 18, MVT::v1i64,// ->138659
/*138641*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138643*/      OPC_EmitInteger, MVT::i32, 14, 
/*138646*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138649*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv1i64), 0,
                    MVT::v1i64, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (usubsat:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm) - Complexity = 3
                // Dst: (VQSUBuv1i64:{ *:[v1i64] } DPR:{ *:[v1i64] }:$Vn, DPR:{ *:[v1i64] }:$Vm)
/*138659*/    /*SwitchType*/ 18, MVT::v2i64,// ->138679
/*138661*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138663*/      OPC_EmitInteger, MVT::i32, 14, 
/*138666*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138669*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VQSUBuv2i64), 0,
                    MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (usubsat:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm) - Complexity = 3
                // Dst: (VQSUBuv2i64:{ *:[v2i64] } QPR:{ *:[v2i64] }:$Vn, QPR:{ *:[v2i64] }:$Vm)
/*138679*/    0, // EndSwitchType
/*138680*/  /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(ARMISD::VTST),// ->138825
/*138684*/    OPC_RecordChild0, // #0 = $Vn
/*138685*/    OPC_SwitchType /*6 cases */, 21, MVT::v8i8,// ->138709
/*138688*/      OPC_CheckChild0Type, MVT::v8i8,
/*138690*/      OPC_RecordChild1, // #1 = $Vm
/*138691*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138693*/      OPC_EmitInteger, MVT::i32, 14, 
/*138696*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138699*/      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)
/*138709*/    /*SwitchType*/ 21, MVT::v4i16,// ->138732
/*138711*/      OPC_CheckChild0Type, MVT::v4i16,
/*138713*/      OPC_RecordChild1, // #1 = $Vm
/*138714*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138716*/      OPC_EmitInteger, MVT::i32, 14, 
/*138719*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138722*/      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)
/*138732*/    /*SwitchType*/ 21, MVT::v2i32,// ->138755
/*138734*/      OPC_CheckChild0Type, MVT::v2i32,
/*138736*/      OPC_RecordChild1, // #1 = $Vm
/*138737*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138739*/      OPC_EmitInteger, MVT::i32, 14, 
/*138742*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138745*/      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)
/*138755*/    /*SwitchType*/ 21, MVT::v16i8,// ->138778
/*138757*/      OPC_CheckChild0Type, MVT::v16i8,
/*138759*/      OPC_RecordChild1, // #1 = $Vm
/*138760*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138762*/      OPC_EmitInteger, MVT::i32, 14, 
/*138765*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138768*/      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)
/*138778*/    /*SwitchType*/ 21, MVT::v8i16,// ->138801
/*138780*/      OPC_CheckChild0Type, MVT::v8i16,
/*138782*/      OPC_RecordChild1, // #1 = $Vm
/*138783*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138785*/      OPC_EmitInteger, MVT::i32, 14, 
/*138788*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138791*/      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)
/*138801*/    /*SwitchType*/ 21, MVT::v4i32,// ->138824
/*138803*/      OPC_CheckChild0Type, MVT::v4i32,
/*138805*/      OPC_RecordChild1, // #1 = $Vm
/*138806*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138808*/      OPC_EmitInteger, MVT::i32, 14, 
/*138811*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138814*/      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)
/*138824*/    0, // EndSwitchType
/*138825*/  /*SwitchOpcode*/ 47, TARGET_VAL(ARMISD::VBSL),// ->138875
/*138828*/    OPC_RecordChild0, // #0 = $src1
/*138829*/    OPC_RecordChild1, // #1 = $Vn
/*138830*/    OPC_RecordChild2, // #2 = $Vm
/*138831*/    OPC_SwitchType /*2 cases */, 19, MVT::v2i32,// ->138853
/*138834*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138836*/      OPC_EmitInteger, MVT::i32, 14, 
/*138839*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138842*/      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)
/*138853*/    /*SwitchType*/ 19, MVT::v4i32,// ->138874
/*138855*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138857*/      OPC_EmitInteger, MVT::i32, 14, 
/*138860*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138863*/      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)
/*138874*/    0, // EndSwitchType
/*138875*/  /*SwitchOpcode*/ 83|128,1/*211*/, TARGET_VAL(ISD::SMAX),// ->139090
/*138879*/    OPC_RecordChild0, // #0 = $Vn
/*138880*/    OPC_RecordChild1, // #1 = $Vm
/*138881*/    OPC_SwitchType /*6 cases */, 18, MVT::v4i16,// ->138902
/*138884*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138886*/      OPC_EmitInteger, MVT::i32, 14, 
/*138889*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138892*/      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)
/*138902*/    /*SwitchType*/ 18, MVT::v2i32,// ->138922
/*138904*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138906*/      OPC_EmitInteger, MVT::i32, 14, 
/*138909*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138912*/      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)
/*138922*/    /*SwitchType*/ 47, MVT::v8i16,// ->138971
/*138924*/      OPC_Scope, 18, /*->138944*/ // 2 children in Scope
/*138926*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138928*/        OPC_EmitInteger, MVT::i32, 14, 
/*138931*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138934*/        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)
/*138944*/      /*Scope*/ 25, /*->138970*/
/*138945*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*138947*/        OPC_EmitInteger, MVT::i32, 0, 
/*138950*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138953*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*138959*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXs16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (smax:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VMAXs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/*138970*/      0, /*End of Scope*/
/*138971*/    /*SwitchType*/ 47, MVT::v4i32,// ->139020
/*138973*/      OPC_Scope, 18, /*->138993*/ // 2 children in Scope
/*138975*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*138977*/        OPC_EmitInteger, MVT::i32, 14, 
/*138980*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*138983*/        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)
/*138993*/      /*Scope*/ 25, /*->139019*/
/*138994*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*138996*/        OPC_EmitInteger, MVT::i32, 0, 
/*138999*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139002*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*139008*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXs32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (smax:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VMAXs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/*139019*/      0, /*End of Scope*/
/*139020*/    /*SwitchType*/ 18, MVT::v8i8,// ->139040
/*139022*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139024*/      OPC_EmitInteger, MVT::i32, 14, 
/*139027*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139030*/      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)
/*139040*/    /*SwitchType*/ 47, MVT::v16i8,// ->139089
/*139042*/      OPC_Scope, 18, /*->139062*/ // 2 children in Scope
/*139044*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139046*/        OPC_EmitInteger, MVT::i32, 14, 
/*139049*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139052*/        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)
/*139062*/      /*Scope*/ 25, /*->139088*/
/*139063*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*139065*/        OPC_EmitInteger, MVT::i32, 0, 
/*139068*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139071*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*139077*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXs8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (smax:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VMAXs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/*139088*/      0, /*End of Scope*/
/*139089*/    0, // EndSwitchType
/*139090*/  /*SwitchOpcode*/ 83|128,1/*211*/, TARGET_VAL(ISD::UMAX),// ->139305
/*139094*/    OPC_RecordChild0, // #0 = $Vn
/*139095*/    OPC_RecordChild1, // #1 = $Vm
/*139096*/    OPC_SwitchType /*6 cases */, 18, MVT::v4i16,// ->139117
/*139099*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139101*/      OPC_EmitInteger, MVT::i32, 14, 
/*139104*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139107*/      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)
/*139117*/    /*SwitchType*/ 18, MVT::v2i32,// ->139137
/*139119*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139121*/      OPC_EmitInteger, MVT::i32, 14, 
/*139124*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139127*/      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)
/*139137*/    /*SwitchType*/ 47, MVT::v8i16,// ->139186
/*139139*/      OPC_Scope, 18, /*->139159*/ // 2 children in Scope
/*139141*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139143*/        OPC_EmitInteger, MVT::i32, 14, 
/*139146*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139149*/        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)
/*139159*/      /*Scope*/ 25, /*->139185*/
/*139160*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*139162*/        OPC_EmitInteger, MVT::i32, 0, 
/*139165*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139168*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*139174*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXu16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (umax:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VMAXu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/*139185*/      0, /*End of Scope*/
/*139186*/    /*SwitchType*/ 47, MVT::v4i32,// ->139235
/*139188*/      OPC_Scope, 18, /*->139208*/ // 2 children in Scope
/*139190*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139192*/        OPC_EmitInteger, MVT::i32, 14, 
/*139195*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139198*/        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)
/*139208*/      /*Scope*/ 25, /*->139234*/
/*139209*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*139211*/        OPC_EmitInteger, MVT::i32, 0, 
/*139214*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139217*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*139223*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXu32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (umax:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VMAXu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/*139234*/      0, /*End of Scope*/
/*139235*/    /*SwitchType*/ 18, MVT::v8i8,// ->139255
/*139237*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139239*/      OPC_EmitInteger, MVT::i32, 14, 
/*139242*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139245*/      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)
/*139255*/    /*SwitchType*/ 47, MVT::v16i8,// ->139304
/*139257*/      OPC_Scope, 18, /*->139277*/ // 2 children in Scope
/*139259*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139261*/        OPC_EmitInteger, MVT::i32, 14, 
/*139264*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139267*/        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)
/*139277*/      /*Scope*/ 25, /*->139303*/
/*139278*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*139280*/        OPC_EmitInteger, MVT::i32, 0, 
/*139283*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139286*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*139292*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMAXu8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (umax:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VMAXu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/*139303*/      0, /*End of Scope*/
/*139304*/    0, // EndSwitchType
/*139305*/  /*SwitchOpcode*/ 83|128,1/*211*/, TARGET_VAL(ISD::SMIN),// ->139520
/*139309*/    OPC_RecordChild0, // #0 = $Vn
/*139310*/    OPC_RecordChild1, // #1 = $Vm
/*139311*/    OPC_SwitchType /*6 cases */, 18, MVT::v4i16,// ->139332
/*139314*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139316*/      OPC_EmitInteger, MVT::i32, 14, 
/*139319*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139322*/      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)
/*139332*/    /*SwitchType*/ 18, MVT::v2i32,// ->139352
/*139334*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139336*/      OPC_EmitInteger, MVT::i32, 14, 
/*139339*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139342*/      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)
/*139352*/    /*SwitchType*/ 47, MVT::v8i16,// ->139401
/*139354*/      OPC_Scope, 18, /*->139374*/ // 2 children in Scope
/*139356*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139358*/        OPC_EmitInteger, MVT::i32, 14, 
/*139361*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139364*/        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)
/*139374*/      /*Scope*/ 25, /*->139400*/
/*139375*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*139377*/        OPC_EmitInteger, MVT::i32, 0, 
/*139380*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139383*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*139389*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINs16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (smin:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VMINs16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/*139400*/      0, /*End of Scope*/
/*139401*/    /*SwitchType*/ 47, MVT::v4i32,// ->139450
/*139403*/      OPC_Scope, 18, /*->139423*/ // 2 children in Scope
/*139405*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139407*/        OPC_EmitInteger, MVT::i32, 14, 
/*139410*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139413*/        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)
/*139423*/      /*Scope*/ 25, /*->139449*/
/*139424*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*139426*/        OPC_EmitInteger, MVT::i32, 0, 
/*139429*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139432*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*139438*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINs32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (smin:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VMINs32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/*139449*/      0, /*End of Scope*/
/*139450*/    /*SwitchType*/ 18, MVT::v8i8,// ->139470
/*139452*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139454*/      OPC_EmitInteger, MVT::i32, 14, 
/*139457*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139460*/      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)
/*139470*/    /*SwitchType*/ 47, MVT::v16i8,// ->139519
/*139472*/      OPC_Scope, 18, /*->139492*/ // 2 children in Scope
/*139474*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139476*/        OPC_EmitInteger, MVT::i32, 14, 
/*139479*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139482*/        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)
/*139492*/      /*Scope*/ 25, /*->139518*/
/*139493*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*139495*/        OPC_EmitInteger, MVT::i32, 0, 
/*139498*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139501*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*139507*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINs8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (smin:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VMINs8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/*139518*/      0, /*End of Scope*/
/*139519*/    0, // EndSwitchType
/*139520*/  /*SwitchOpcode*/ 83|128,1/*211*/, TARGET_VAL(ISD::UMIN),// ->139735
/*139524*/    OPC_RecordChild0, // #0 = $Vn
/*139525*/    OPC_RecordChild1, // #1 = $Vm
/*139526*/    OPC_SwitchType /*6 cases */, 18, MVT::v4i16,// ->139547
/*139529*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139531*/      OPC_EmitInteger, MVT::i32, 14, 
/*139534*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139537*/      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)
/*139547*/    /*SwitchType*/ 18, MVT::v2i32,// ->139567
/*139549*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139551*/      OPC_EmitInteger, MVT::i32, 14, 
/*139554*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139557*/      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)
/*139567*/    /*SwitchType*/ 47, MVT::v8i16,// ->139616
/*139569*/      OPC_Scope, 18, /*->139589*/ // 2 children in Scope
/*139571*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139573*/        OPC_EmitInteger, MVT::i32, 14, 
/*139576*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139579*/        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)
/*139589*/      /*Scope*/ 25, /*->139615*/
/*139590*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*139592*/        OPC_EmitInteger, MVT::i32, 0, 
/*139595*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139598*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*139604*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINu16), 0,
                      MVT::v8i16, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (umin:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VMINu16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$Qm, MQPR:{ *:[v8i16] }:$Qn)
/*139615*/      0, /*End of Scope*/
/*139616*/    /*SwitchType*/ 47, MVT::v4i32,// ->139665
/*139618*/      OPC_Scope, 18, /*->139638*/ // 2 children in Scope
/*139620*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139622*/        OPC_EmitInteger, MVT::i32, 14, 
/*139625*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139628*/        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)
/*139638*/      /*Scope*/ 25, /*->139664*/
/*139639*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*139641*/        OPC_EmitInteger, MVT::i32, 0, 
/*139644*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139647*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*139653*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINu32), 0,
                      MVT::v4i32, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (umin:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VMINu32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$Qm, MQPR:{ *:[v4i32] }:$Qn)
/*139664*/      0, /*End of Scope*/
/*139665*/    /*SwitchType*/ 18, MVT::v8i8,// ->139685
/*139667*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139669*/      OPC_EmitInteger, MVT::i32, 14, 
/*139672*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139675*/      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)
/*139685*/    /*SwitchType*/ 47, MVT::v16i8,// ->139734
/*139687*/      OPC_Scope, 18, /*->139707*/ // 2 children in Scope
/*139689*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139691*/        OPC_EmitInteger, MVT::i32, 14, 
/*139694*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139697*/        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)
/*139707*/      /*Scope*/ 25, /*->139733*/
/*139708*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*139710*/        OPC_EmitInteger, MVT::i32, 0, 
/*139713*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139716*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*139722*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMINu8), 0,
                      MVT::v16i8, 5/*#Ops*/, 0, 1, 2, 3, 4, 
                  // Src: (umin:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn) - Complexity = 3
                  // Dst: (MVE_VMINu8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$Qm, MQPR:{ *:[v16i8] }:$Qn)
/*139733*/      0, /*End of Scope*/
/*139734*/    0, // EndSwitchType
/*139735*/  /*SwitchOpcode*/ 45, TARGET_VAL(ISD::CTPOP),// ->139783
/*139738*/    OPC_RecordChild0, // #0 = $Vm
/*139739*/    OPC_SwitchType /*2 cases */, 19, MVT::v8i8,// ->139761
/*139742*/      OPC_CheckChild0Type, MVT::v8i8,
/*139744*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139746*/      OPC_EmitInteger, MVT::i32, 14, 
/*139749*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139752*/      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)
/*139761*/    /*SwitchType*/ 19, MVT::v16i8,// ->139782
/*139763*/      OPC_CheckChild0Type, MVT::v16i8,
/*139765*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139767*/      OPC_EmitInteger, MVT::i32, 14, 
/*139770*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139773*/      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)
/*139782*/    0, // EndSwitchType
/*139783*/  /*SwitchOpcode*/ 20|128,2/*276*/, TARGET_VAL(ISD::SIGN_EXTEND),// ->140063
/*139787*/    OPC_RecordChild0, // #0 = $Vm
/*139788*/    OPC_SwitchType /*4 cases */, 91, MVT::v8i16,// ->139882
/*139791*/      OPC_Scope, 19, /*->139812*/ // 2 children in Scope
/*139793*/        OPC_CheckChild0Type, MVT::v8i8,
/*139795*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139797*/        OPC_EmitInteger, MVT::i32, 14, 
/*139800*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139803*/        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)
/*139812*/      /*Scope*/ 68, /*->139881*/
/*139813*/        OPC_CheckChild0Type, MVT::v8i1,
/*139815*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*139817*/        OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/*139821*/        OPC_EmitInteger, MVT::i32, 0, 
/*139824*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139827*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*139833*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi8), 0,
                      MVT::v16i8, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*139843*/        OPC_EmitInteger, MVT::i32, 0, 
/*139846*/        OPC_EmitInteger, MVT::i32, 0, 
/*139849*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139852*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #9
/*139858*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi16), 0,
                      MVT::v16i8, 4/*#Ops*/, 6, 7, 8, 9,  // Results = #10
/*139868*/        OPC_EmitInteger, MVT::i32, 0, 
/*139871*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                      MVT::v8i16, 4/*#Ops*/, 5, 10, 11, 0, 
                  // Src: (sext:{ *:[v8i16] } VCCR:{ *:[v8i1] }:$pred) - Complexity = 3
                  // Dst: (MVE_VPSEL:{ *:[v8i16] } (MVE_VMOVimmi8:{ *:[v16i8] } 255:{ *:[i32] }), (MVE_VMOVimmi16:{ *:[v16i8] } 0:{ *:[i32] }), 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/*139881*/      0, /*End of Scope*/
/*139882*/    /*SwitchType*/ 91, MVT::v4i32,// ->139975
/*139884*/      OPC_Scope, 19, /*->139905*/ // 2 children in Scope
/*139886*/        OPC_CheckChild0Type, MVT::v4i16,
/*139888*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139890*/        OPC_EmitInteger, MVT::i32, 14, 
/*139893*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139896*/        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)
/*139905*/      /*Scope*/ 68, /*->139974*/
/*139906*/        OPC_CheckChild0Type, MVT::v4i1,
/*139908*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*139910*/        OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/*139914*/        OPC_EmitInteger, MVT::i32, 0, 
/*139917*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139920*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*139926*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi8), 0,
                      MVT::v16i8, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*139936*/        OPC_EmitInteger, MVT::i32, 0, 
/*139939*/        OPC_EmitInteger, MVT::i32, 0, 
/*139942*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139945*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #9
/*139951*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi32), 0,
                      MVT::v16i8, 4/*#Ops*/, 6, 7, 8, 9,  // Results = #10
/*139961*/        OPC_EmitInteger, MVT::i32, 0, 
/*139964*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                      MVT::v4i32, 4/*#Ops*/, 5, 10, 11, 0, 
                  // Src: (sext:{ *:[v4i32] } VCCR:{ *:[v4i1] }:$pred) - Complexity = 3
                  // Dst: (MVE_VPSEL:{ *:[v4i32] } (MVE_VMOVimmi8:{ *:[v16i8] } 255:{ *:[i32] }), (MVE_VMOVimmi32:{ *:[v16i8] } 0:{ *:[i32] }), 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*139974*/      0, /*End of Scope*/
/*139975*/    /*SwitchType*/ 17, MVT::v2i64,// ->139994
/*139977*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*139979*/      OPC_EmitInteger, MVT::i32, 14, 
/*139982*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*139985*/      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)
/*139994*/    /*SwitchType*/ 66, MVT::v16i8,// ->140062
/*139996*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*139998*/      OPC_EmitInteger, MVT::i32, 127|128,1/*255*/, 
/*140002*/      OPC_EmitInteger, MVT::i32, 0, 
/*140005*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140008*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*140014*/      OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi8), 0,
                    MVT::v16i8, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*140024*/      OPC_EmitInteger, MVT::i32, 0, 
/*140027*/      OPC_EmitInteger, MVT::i32, 0, 
/*140030*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140033*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #9
/*140039*/      OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi8), 0,
                    MVT::v16i8, 4/*#Ops*/, 6, 7, 8, 9,  // Results = #10
/*140049*/      OPC_EmitInteger, MVT::i32, 0, 
/*140052*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                    MVT::v16i8, 4/*#Ops*/, 5, 10, 11, 0, 
                // Src: (sext:{ *:[v16i8] } VCCR:{ *:[v16i1] }:$pred) - Complexity = 3
                // Dst: (MVE_VPSEL:{ *:[v16i8] } (MVE_VMOVimmi8:{ *:[v16i8] } 255:{ *:[i32] }), (MVE_VMOVimmi8:{ *:[v16i8] } 0:{ *:[i32] }), 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred)
/*140062*/    0, // EndSwitchType
/*140063*/  /*SwitchOpcode*/ 17|128,2/*273*/, TARGET_VAL(ISD::ANY_EXTEND),// ->140340
/*140067*/    OPC_RecordChild0, // #0 = $Vm
/*140068*/    OPC_SwitchType /*4 cases */, 90, MVT::v8i16,// ->140161
/*140071*/      OPC_Scope, 19, /*->140092*/ // 2 children in Scope
/*140073*/        OPC_CheckChild0Type, MVT::v8i8,
/*140075*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140077*/        OPC_EmitInteger, MVT::i32, 14, 
/*140080*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140083*/        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)
/*140092*/      /*Scope*/ 67, /*->140160*/
/*140093*/        OPC_CheckChild0Type, MVT::v8i1,
/*140095*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*140097*/        OPC_EmitInteger, MVT::i32, 1, 
/*140100*/        OPC_EmitInteger, MVT::i32, 0, 
/*140103*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140106*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*140112*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi16), 0,
                      MVT::v16i8, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*140122*/        OPC_EmitInteger, MVT::i32, 0, 
/*140125*/        OPC_EmitInteger, MVT::i32, 0, 
/*140128*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140131*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #9
/*140137*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi16), 0,
                      MVT::v16i8, 4/*#Ops*/, 6, 7, 8, 9,  // Results = #10
/*140147*/        OPC_EmitInteger, MVT::i32, 0, 
/*140150*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                      MVT::v8i16, 4/*#Ops*/, 5, 10, 11, 0, 
                  // Src: (anyext:{ *:[v8i16] } VCCR:{ *:[v8i1] }:$pred) - Complexity = 3
                  // Dst: (MVE_VPSEL:{ *:[v8i16] } (MVE_VMOVimmi16:{ *:[v16i8] } 1:{ *:[i32] }), (MVE_VMOVimmi16:{ *:[v16i8] } 0:{ *:[i32] }), 0:{ *:[i32] }, VCCR:{ *:[v8i1] }:$pred)
/*140160*/      0, /*End of Scope*/
/*140161*/    /*SwitchType*/ 90, MVT::v4i32,// ->140253
/*140163*/      OPC_Scope, 19, /*->140184*/ // 2 children in Scope
/*140165*/        OPC_CheckChild0Type, MVT::v4i16,
/*140167*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140169*/        OPC_EmitInteger, MVT::i32, 14, 
/*140172*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140175*/        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)
/*140184*/      /*Scope*/ 67, /*->140252*/
/*140185*/        OPC_CheckChild0Type, MVT::v4i1,
/*140187*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*140189*/        OPC_EmitInteger, MVT::i32, 1, 
/*140192*/        OPC_EmitInteger, MVT::i32, 0, 
/*140195*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140198*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*140204*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi32), 0,
                      MVT::v16i8, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*140214*/        OPC_EmitInteger, MVT::i32, 0, 
/*140217*/        OPC_EmitInteger, MVT::i32, 0, 
/*140220*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140223*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #9
/*140229*/        OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi32), 0,
                      MVT::v16i8, 4/*#Ops*/, 6, 7, 8, 9,  // Results = #10
/*140239*/        OPC_EmitInteger, MVT::i32, 0, 
/*140242*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                      MVT::v4i32, 4/*#Ops*/, 5, 10, 11, 0, 
                  // Src: (anyext:{ *:[v4i32] } VCCR:{ *:[v4i1] }:$pred) - Complexity = 3
                  // Dst: (MVE_VPSEL:{ *:[v4i32] } (MVE_VMOVimmi32:{ *:[v16i8] } 1:{ *:[i32] }), (MVE_VMOVimmi32:{ *:[v16i8] } 0:{ *:[i32] }), 0:{ *:[i32] }, VCCR:{ *:[v4i1] }:$pred)
/*140252*/      0, /*End of Scope*/
/*140253*/    /*SwitchType*/ 17, MVT::v2i64,// ->140272
/*140255*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140257*/      OPC_EmitInteger, MVT::i32, 14, 
/*140260*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140263*/      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)
/*140272*/    /*SwitchType*/ 65, MVT::v16i8,// ->140339
/*140274*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*140276*/      OPC_EmitInteger, MVT::i32, 1, 
/*140279*/      OPC_EmitInteger, MVT::i32, 0, 
/*140282*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140285*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #4
/*140291*/      OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi8), 0,
                    MVT::v16i8, 4/*#Ops*/, 1, 2, 3, 4,  // Results = #5
/*140301*/      OPC_EmitInteger, MVT::i32, 0, 
/*140304*/      OPC_EmitInteger, MVT::i32, 0, 
/*140307*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140310*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v4i32, 0/*#Ops*/,  // Results = #9
/*140316*/      OPC_EmitNode1, TARGET_VAL(ARM::MVE_VMOVimmi8), 0,
                    MVT::v16i8, 4/*#Ops*/, 6, 7, 8, 9,  // Results = #10
/*140326*/      OPC_EmitInteger, MVT::i32, 0, 
/*140329*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VPSEL), 0,
                    MVT::v16i8, 4/*#Ops*/, 5, 10, 11, 0, 
                // Src: (anyext:{ *:[v16i8] } VCCR:{ *:[v16i1] }:$pred) - Complexity = 3
                // Dst: (MVE_VPSEL:{ *:[v16i8] } (MVE_VMOVimmi8:{ *:[v16i8] } 1:{ *:[i32] }), (MVE_VMOVimmi8:{ *:[v16i8] } 0:{ *:[i32] }), 0:{ *:[i32] }, VCCR:{ *:[v16i1] }:$pred)
/*140339*/    0, // EndSwitchType
/*140340*/  /*SwitchOpcode*/ 77|128,2/*333*/, TARGET_VAL(ARMISD::VREV64),// ->140677
/*140344*/    OPC_RecordChild0, // #0 = $Vm
/*140345*/    OPC_SwitchType /*10 cases */, 17, MVT::v8i8,// ->140365
/*140348*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140350*/      OPC_EmitInteger, MVT::i32, 14, 
/*140353*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140356*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMvrev64:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VREV64d8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/*140365*/    /*SwitchType*/ 17, MVT::v4i16,// ->140384
/*140367*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140369*/      OPC_EmitInteger, MVT::i32, 14, 
/*140372*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140375*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d16), 0,
                    MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMvrev64:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VREV64d16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/*140384*/    /*SwitchType*/ 17, MVT::v2i32,// ->140403
/*140386*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140388*/      OPC_EmitInteger, MVT::i32, 14, 
/*140391*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140394*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d32), 0,
                    MVT::v2i32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMvrev64:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm) - Complexity = 3
                // Dst: (VREV64d32:{ *:[v2i32] } DPR:{ *:[v2i32] }:$Vm)
/*140403*/    /*SwitchType*/ 45, MVT::v16i8,// ->140450
/*140405*/      OPC_Scope, 17, /*->140424*/ // 2 children in Scope
/*140407*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140409*/        OPC_EmitInteger, MVT::i32, 14, 
/*140412*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140415*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q8), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvrev64:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                  // Dst: (VREV64q8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/*140424*/      /*Scope*/ 24, /*->140449*/
/*140425*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*140427*/        OPC_EmitInteger, MVT::i32, 0, 
/*140430*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140433*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*140439*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvrev64:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                  // Dst: (MVE_VREV64_8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src)
/*140449*/      0, /*End of Scope*/
/*140450*/    /*SwitchType*/ 45, MVT::v8i16,// ->140497
/*140452*/      OPC_Scope, 17, /*->140471*/ // 2 children in Scope
/*140454*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140456*/        OPC_EmitInteger, MVT::i32, 14, 
/*140459*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140462*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvrev64:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VREV64q16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/*140471*/      /*Scope*/ 24, /*->140496*/
/*140472*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*140474*/        OPC_EmitInteger, MVT::i32, 0, 
/*140477*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140480*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*140486*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvrev64:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                  // Dst: (MVE_VREV64_16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src)
/*140496*/      0, /*End of Scope*/
/*140497*/    /*SwitchType*/ 45, MVT::v4i32,// ->140544
/*140499*/      OPC_Scope, 17, /*->140518*/ // 2 children in Scope
/*140501*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140503*/        OPC_EmitInteger, MVT::i32, 14, 
/*140506*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140509*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q32), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvrev64:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm) - Complexity = 3
                  // Dst: (VREV64q32:{ *:[v4i32] } QPR:{ *:[v4i32] }:$Vm)
/*140518*/      /*Scope*/ 24, /*->140543*/
/*140519*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*140521*/        OPC_EmitInteger, MVT::i32, 0, 
/*140524*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140527*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*140533*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_32), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvrev64:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src) - Complexity = 3
                  // Dst: (MVE_VREV64_32:{ *:[v4i32] } MQPR:{ *:[v4i32] }:$src)
/*140543*/      0, /*End of Scope*/
/*140544*/    /*SwitchType*/ 17, MVT::v2f32,// ->140563
/*140546*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140548*/      OPC_EmitInteger, MVT::i32, 14, 
/*140551*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140554*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d32), 0,
                    MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMvrev64:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm) - Complexity = 3
                // Dst: (VREV64d32:{ *:[v2f32] } DPR:{ *:[v2f32] }:$Vm)
/*140563*/    /*SwitchType*/ 45, MVT::v4f32,// ->140610
/*140565*/      OPC_Scope, 17, /*->140584*/ // 2 children in Scope
/*140567*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140569*/        OPC_EmitInteger, MVT::i32, 14, 
/*140572*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140575*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q32), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvrev64:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm) - Complexity = 3
                  // Dst: (VREV64q32:{ *:[v4f32] } QPR:{ *:[v4f32] }:$Vm)
/*140584*/      /*Scope*/ 24, /*->140609*/
/*140585*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*140587*/        OPC_EmitInteger, MVT::i32, 0, 
/*140590*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140593*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*140599*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_32), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvrev64:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (MVE_VREV64_32:{ *:[v4f32] } MQPR:{ *:[v4f32] }:$src)
/*140609*/      0, /*End of Scope*/
/*140610*/    /*SwitchType*/ 45, MVT::v8f16,// ->140657
/*140612*/      OPC_Scope, 17, /*->140631*/ // 2 children in Scope
/*140614*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140616*/        OPC_EmitInteger, MVT::i32, 14, 
/*140619*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140622*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64q16), 0,
                      MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvrev64:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VREV64q16:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/*140631*/      /*Scope*/ 24, /*->140656*/
/*140632*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*140634*/        OPC_EmitInteger, MVT::i32, 0, 
/*140637*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140640*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*140646*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV64_16), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvrev64:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                  // Dst: (MVE_VREV64_16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$src)
/*140656*/      0, /*End of Scope*/
/*140657*/    /*SwitchType*/ 17, MVT::v4f16,// ->140676
/*140659*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140661*/      OPC_EmitInteger, MVT::i32, 14, 
/*140664*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140667*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV64d16), 0,
                    MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMvrev64:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                // Dst: (VREV64d16:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/*140676*/    0, // EndSwitchType
/*140677*/  /*SwitchOpcode*/ 73|128,1/*201*/, TARGET_VAL(ARMISD::VREV32),// ->140882
/*140681*/    OPC_RecordChild0, // #0 = $Vm
/*140682*/    OPC_SwitchType /*6 cases */, 17, MVT::v8i8,// ->140702
/*140685*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140687*/      OPC_EmitInteger, MVT::i32, 14, 
/*140690*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140693*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMvrev32:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VREV32d8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/*140702*/    /*SwitchType*/ 17, MVT::v4i16,// ->140721
/*140704*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140706*/      OPC_EmitInteger, MVT::i32, 14, 
/*140709*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140712*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d16), 0,
                    MVT::v4i16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMvrev32:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm) - Complexity = 3
                // Dst: (VREV32d16:{ *:[v4i16] } DPR:{ *:[v4i16] }:$Vm)
/*140721*/    /*SwitchType*/ 45, MVT::v16i8,// ->140768
/*140723*/      OPC_Scope, 17, /*->140742*/ // 2 children in Scope
/*140725*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140727*/        OPC_EmitInteger, MVT::i32, 14, 
/*140730*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140733*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q8), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvrev32:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                  // Dst: (VREV32q8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/*140742*/      /*Scope*/ 24, /*->140767*/
/*140743*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*140745*/        OPC_EmitInteger, MVT::i32, 0, 
/*140748*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140751*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*140757*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvrev32:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                  // Dst: (MVE_VREV32_8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src)
/*140767*/      0, /*End of Scope*/
/*140768*/    /*SwitchType*/ 45, MVT::v8i16,// ->140815
/*140770*/      OPC_Scope, 17, /*->140789*/ // 2 children in Scope
/*140772*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140774*/        OPC_EmitInteger, MVT::i32, 14, 
/*140777*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140780*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q16), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvrev32:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm) - Complexity = 3
                  // Dst: (VREV32q16:{ *:[v8i16] } QPR:{ *:[v8i16] }:$Vm)
/*140789*/      /*Scope*/ 24, /*->140814*/
/*140790*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*140792*/        OPC_EmitInteger, MVT::i32, 0, 
/*140795*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140798*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*140804*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_16), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvrev32:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src) - Complexity = 3
                  // Dst: (MVE_VREV32_16:{ *:[v8i16] } MQPR:{ *:[v8i16] }:$src)
/*140814*/      0, /*End of Scope*/
/*140815*/    /*SwitchType*/ 45, MVT::v8f16,// ->140862
/*140817*/      OPC_Scope, 17, /*->140836*/ // 2 children in Scope
/*140819*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140821*/        OPC_EmitInteger, MVT::i32, 14, 
/*140824*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140827*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32q16), 0,
                      MVT::v8f16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvrev32:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm) - Complexity = 3
                  // Dst: (VREV32q16:{ *:[v8f16] } QPR:{ *:[v8f16] }:$Vm)
/*140836*/      /*Scope*/ 24, /*->140861*/
/*140837*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*140839*/        OPC_EmitInteger, MVT::i32, 0, 
/*140842*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140845*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*140851*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV32_16), 0,
                      MVT::v8f16, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvrev32:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$src) - Complexity = 3
                  // Dst: (MVE_VREV32_16:{ *:[v8f16] } MQPR:{ *:[v8f16] }:$src)
/*140861*/      0, /*End of Scope*/
/*140862*/    /*SwitchType*/ 17, MVT::v4f16,// ->140881
/*140864*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140866*/      OPC_EmitInteger, MVT::i32, 14, 
/*140869*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140872*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV32d16), 0,
                    MVT::v4f16, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMvrev32:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm) - Complexity = 3
                // Dst: (VREV32d16:{ *:[v4f16] } DPR:{ *:[v4f16] }:$Vm)
/*140881*/    0, // EndSwitchType
/*140882*/  /*SwitchOpcode*/ 69, TARGET_VAL(ARMISD::VREV16),// ->140954
/*140885*/    OPC_RecordChild0, // #0 = $Vm
/*140886*/    OPC_SwitchType /*2 cases */, 17, MVT::v8i8,// ->140906
/*140889*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140891*/      OPC_EmitInteger, MVT::i32, 14, 
/*140894*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140897*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV16d8), 0,
                    MVT::v8i8, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMvrev16:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm) - Complexity = 3
                // Dst: (VREV16d8:{ *:[v8i8] } DPR:{ *:[v8i8] }:$Vm)
/*140906*/    /*SwitchType*/ 45, MVT::v16i8,// ->140953
/*140908*/      OPC_Scope, 17, /*->140927*/ // 2 children in Scope
/*140910*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140912*/        OPC_EmitInteger, MVT::i32, 14, 
/*140915*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140918*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VREV16q8), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvrev16:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm) - Complexity = 3
                  // Dst: (VREV16q8:{ *:[v16i8] } QPR:{ *:[v16i8] }:$Vm)
/*140927*/      /*Scope*/ 24, /*->140952*/
/*140928*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*140930*/        OPC_EmitInteger, MVT::i32, 0, 
/*140933*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140936*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*140942*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VREV16_8), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvrev16:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src) - Complexity = 3
                  // Dst: (MVE_VREV16_8:{ *:[v16i8] } MQPR:{ *:[v16i8] }:$src)
/*140952*/      0, /*End of Scope*/
/*140953*/    0, // EndSwitchType
/*140954*/  /*SwitchOpcode*/ 20, TARGET_VAL(ARMISD::VTBL1),// ->140977
/*140957*/    OPC_RecordChild0, // #0 = $Vn
/*140958*/    OPC_RecordChild1, // #1 = $Vm
/*140959*/    OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140961*/    OPC_EmitInteger, MVT::i32, 14, 
/*140964*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*140967*/    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)
/*140977*/  /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(ISD::CONCAT_VECTORS),// ->141129
/*140981*/    OPC_RecordChild0, // #0 = $Dn
/*140982*/    OPC_RecordChild1, // #1 = $Dm
/*140983*/    OPC_SwitchType /*6 cases */, 22, MVT::v2i64,// ->141008
/*140986*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*140988*/      OPC_EmitInteger, MVT::i32, ARM::QPRRegClassID,
/*140991*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*140994*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/*140997*/      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] })
/*141008*/    /*SwitchType*/ 22, MVT::v4i32,// ->141032
/*141010*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141012*/      OPC_EmitInteger, MVT::i32, ARM::QPRRegClassID,
/*141015*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*141018*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/*141021*/      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] })
/*141032*/    /*SwitchType*/ 22, MVT::v8i16,// ->141056
/*141034*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141036*/      OPC_EmitInteger, MVT::i32, ARM::QPRRegClassID,
/*141039*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*141042*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/*141045*/      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] })
/*141056*/    /*SwitchType*/ 22, MVT::v16i8,// ->141080
/*141058*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141060*/      OPC_EmitInteger, MVT::i32, ARM::QPRRegClassID,
/*141063*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*141066*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/*141069*/      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] })
/*141080*/    /*SwitchType*/ 22, MVT::v4f32,// ->141104
/*141082*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141084*/      OPC_EmitInteger, MVT::i32, ARM::QPRRegClassID,
/*141087*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*141090*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/*141093*/      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] })
/*141104*/    /*SwitchType*/ 22, MVT::v8f16,// ->141128
/*141106*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141108*/      OPC_EmitInteger, MVT::i32, ARM::QPRRegClassID,
/*141111*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*141114*/      OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/*141117*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                    MVT::v8f16, 5/*#Ops*/, 2, 0, 3, 1, 4, 
                // Src: (concat_vectors:{ *:[v8f16] } DPR:{ *:[v4f16] }:$Dn, DPR:{ *:[v4f16] }:$Dm) - Complexity = 3
                // Dst: (REG_SEQUENCE:{ *:[v8f16] } QPR:{ *:[i32] }, DPR:{ *:[v4f16] }:$Dn, dsub_0:{ *:[i32] }, DPR:{ *:[v4f16] }:$Dm, dsub_1:{ *:[i32] })
/*141128*/    0, // EndSwitchType
/*141129*/  /*SwitchOpcode*/ 10|128,4/*522*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->141655
/*141133*/    OPC_RecordChild0, // #0 = $src
/*141134*/    OPC_Scope, 10|128,3/*394*/, /*->141531*/ // 4 children in Scope
/*141137*/      OPC_CheckChild0Type, MVT::i32,
/*141139*/      OPC_SwitchType /*8 cases */, 28, MVT::v8i8,// ->141170
/*141142*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141144*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i8, 0/*#Ops*/,  // Results = #1
/*141150*/        OPC_EmitInteger, MVT::i32, 0, 
/*141153*/        OPC_EmitInteger, MVT::i32, 14, 
/*141156*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141159*/        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] })
/*141170*/      /*SwitchType*/ 28, MVT::v4i16,// ->141200
/*141172*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141174*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i16, 0/*#Ops*/,  // Results = #1
/*141180*/        OPC_EmitInteger, MVT::i32, 0, 
/*141183*/        OPC_EmitInteger, MVT::i32, 14, 
/*141186*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141189*/        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] })
/*141200*/      /*SwitchType*/ 28, MVT::v2i32,// ->141230
/*141202*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141204*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2i32, 0/*#Ops*/,  // Results = #1
/*141210*/        OPC_EmitInteger, MVT::i32, 0, 
/*141213*/        OPC_EmitInteger, MVT::i32, 14, 
/*141216*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141219*/        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] })
/*141230*/      /*SwitchType*/ 78, MVT::v16i8,// ->141310
/*141232*/        OPC_Scope, 28, /*->141262*/ // 2 children in Scope
/*141234*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*141236*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/*141242*/          OPC_EmitInteger, MVT::i32, 0, 
/*141245*/          OPC_EmitInteger, MVT::i32, 14, 
/*141248*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141251*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOV_to_lane_8), 0,
                        MVT::v16i8, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                    // Src: (scalar_to_vector:{ *:[v16i8] } GPR:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (MVE_VMOV_to_lane_8:{ *:[v16i8] } (IMPLICIT_DEF:{ *:[v16i8] }), rGPR:{ *:[i32] }:$src, 0:{ *:[i32] })
/*141262*/        /*Scope*/ 46, /*->141309*/
/*141263*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141265*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i8, 0/*#Ops*/,  // Results = #1
/*141271*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i8, 0/*#Ops*/,  // Results = #2
/*141277*/          OPC_EmitInteger, MVT::i32, 0, 
/*141280*/          OPC_EmitInteger, MVT::i32, 14, 
/*141283*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141286*/          OPC_EmitNode1, TARGET_VAL(ARM::VSETLNi8), 0,
                        MVT::f64, 5/*#Ops*/, 2, 0, 3, 4, 5,  // Results = #6
/*141297*/          OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*141300*/          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] })
/*141309*/        0, /*End of Scope*/
/*141310*/      /*SwitchType*/ 78, MVT::v8i16,// ->141390
/*141312*/        OPC_Scope, 28, /*->141342*/ // 2 children in Scope
/*141314*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*141316*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i16, 0/*#Ops*/,  // Results = #1
/*141322*/          OPC_EmitInteger, MVT::i32, 0, 
/*141325*/          OPC_EmitInteger, MVT::i32, 14, 
/*141328*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141331*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOV_to_lane_16), 0,
                        MVT::v8i16, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                    // Src: (scalar_to_vector:{ *:[v8i16] } GPR:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (MVE_VMOV_to_lane_16:{ *:[v8i16] } (IMPLICIT_DEF:{ *:[v8i16] }), rGPR:{ *:[i32] }:$src, 0:{ *:[i32] })
/*141342*/        /*Scope*/ 46, /*->141389*/
/*141343*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141345*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i16, 0/*#Ops*/,  // Results = #1
/*141351*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i16, 0/*#Ops*/,  // Results = #2
/*141357*/          OPC_EmitInteger, MVT::i32, 0, 
/*141360*/          OPC_EmitInteger, MVT::i32, 14, 
/*141363*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141366*/          OPC_EmitNode1, TARGET_VAL(ARM::VSETLNi16), 0,
                        MVT::f64, 5/*#Ops*/, 2, 0, 3, 4, 5,  // Results = #6
/*141377*/          OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*141380*/          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] })
/*141389*/        0, /*End of Scope*/
/*141390*/      /*SwitchType*/ 78, MVT::v4i32,// ->141470
/*141392*/        OPC_Scope, 28, /*->141422*/ // 2 children in Scope
/*141394*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*141396*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/*141402*/          OPC_EmitInteger, MVT::i32, 0, 
/*141405*/          OPC_EmitInteger, MVT::i32, 14, 
/*141408*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141411*/          OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOV_to_lane_32), 0,
                        MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                    // Src: (scalar_to_vector:{ *:[v4i32] } GPR:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (MVE_VMOV_to_lane_32:{ *:[v4i32] } (IMPLICIT_DEF:{ *:[v4i32] }), rGPR:{ *:[i32] }:$src, 0:{ *:[i32] })
/*141422*/        /*Scope*/ 46, /*->141469*/
/*141423*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141425*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/*141431*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2i32, 0/*#Ops*/,  // Results = #2
/*141437*/          OPC_EmitInteger, MVT::i32, 0, 
/*141440*/          OPC_EmitInteger, MVT::i32, 14, 
/*141443*/          OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141446*/          OPC_EmitNode1, TARGET_VAL(ARM::VSETLNi32), 0,
                        MVT::f64, 5/*#Ops*/, 2, 0, 3, 4, 5,  // Results = #6
/*141457*/          OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*141460*/          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] })
/*141469*/        0, /*End of Scope*/
/*141470*/      /*SwitchType*/ 28, MVT::v4f32,// ->141500
/*141472*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*141474*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f32, 0/*#Ops*/,  // Results = #1
/*141480*/        OPC_EmitInteger, MVT::i32, 0, 
/*141483*/        OPC_EmitInteger, MVT::i32, 14, 
/*141486*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141489*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOV_to_lane_32), 0,
                      MVT::v4f32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (scalar_to_vector:{ *:[v4f32] } GPR:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (MVE_VMOV_to_lane_32:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), rGPR:{ *:[i32] }:$src, 0:{ *:[i32] })
/*141500*/      /*SwitchType*/ 28, MVT::v8f16,// ->141530
/*141502*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*141504*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f16, 0/*#Ops*/,  // Results = #1
/*141510*/        OPC_EmitInteger, MVT::i32, 0, 
/*141513*/        OPC_EmitInteger, MVT::i32, 14, 
/*141516*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141519*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOV_to_lane_16), 0,
                      MVT::v8f16, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                  // Src: (scalar_to_vector:{ *:[v8f16] } GPR:{ *:[i32] }:$src) - Complexity = 3
                  // Dst: (MVE_VMOV_to_lane_16:{ *:[v8f16] } (IMPLICIT_DEF:{ *:[v8f16] }), rGPR:{ *:[i32] }:$src, 0:{ *:[i32] })
/*141530*/      0, // EndSwitchType
/*141531*/    /*Scope*/ 72, /*->141604*/
/*141532*/      OPC_CheckChild0Type, MVT::f32,
/*141534*/      OPC_SwitchType /*2 cases */, 20, MVT::v2f32,// ->141557
/*141537*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141539*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v2f32, 0/*#Ops*/,  // Results = #1
/*141545*/        OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*141548*/        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] })
/*141557*/      /*SwitchType*/ 44, MVT::v4f32,// ->141603
/*141559*/        OPC_Scope, 20, /*->141581*/ // 2 children in Scope
/*141561*/          OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141563*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/*141569*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*141572*/          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] })
/*141581*/        /*Scope*/ 20, /*->141602*/
/*141582*/          OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*141584*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/*141590*/          OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*141593*/          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] })
/*141602*/        0, /*End of Scope*/
/*141603*/      0, // EndSwitchType
/*141604*/    /*Scope*/ 24, /*->141629*/
/*141605*/      OPC_CheckChild0Type, MVT::f64,
/*141607*/      OPC_CheckType, MVT::v2f64,
/*141609*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141611*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v2f64, 0/*#Ops*/,  // Results = #1
/*141617*/      OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*141620*/      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] })
/*141629*/    /*Scope*/ 24, /*->141654*/
/*141630*/      OPC_CheckChild0Type, MVT::f16,
/*141632*/      OPC_CheckType, MVT::v8f16,
/*141634*/      OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*141636*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8f16, 0/*#Ops*/,  // Results = #1
/*141642*/      OPC_EmitInteger, MVT::i32, ARM::ssub_0,
/*141645*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8f16, 3/*#Ops*/, 1, 0, 2, 
                // Src: (scalar_to_vector:{ *:[v8f16] } HPR:{ *:[f16] }:$src) - Complexity = 3
                // Dst: (INSERT_SUBREG:{ *:[v8f16] } (IMPLICIT_DEF:{ *:[v8f16] }), HPR:{ *:[f16] }:$src, ssub_0:{ *:[i32] })
/*141654*/    0, /*End of Scope*/
/*141655*/  /*SwitchOpcode*/ 41, TARGET_VAL(ARMISD::VTBL2),// ->141699
/*141658*/    OPC_RecordChild0, // #0 = $Vn0
/*141659*/    OPC_RecordChild1, // #1 = $Vn1
/*141660*/    OPC_RecordChild2, // #2 = $Vm
/*141661*/    OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141663*/    OPC_EmitInteger, MVT::i32, ARM::DPairRegClassID,
/*141666*/    OPC_EmitInteger, MVT::i32, ARM::dsub_0,
/*141669*/    OPC_EmitInteger, MVT::i32, ARM::dsub_1,
/*141672*/    OPC_EmitNode1, TARGET_VAL(TargetOpcode::REG_SEQUENCE), 0,
                  MVT::v16i8, 5/*#Ops*/, 3, 0, 4, 1, 5,  // Results = #6
/*141683*/    OPC_EmitInteger, MVT::i32, 14, 
/*141686*/    OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141689*/    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)
/*141699*/  /*SwitchOpcode*/ 74, TARGET_VAL(ARMISD::VMOVFPIMM),// ->141776
/*141702*/    OPC_RecordChild0, // #0 = $SIMM
/*141703*/    OPC_MoveChild0,
/*141704*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*141707*/    OPC_MoveParent,
/*141708*/    OPC_SwitchType /*2 cases */, 17, MVT::v2f32,// ->141728
/*141711*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141713*/      OPC_EmitInteger, MVT::i32, 14, 
/*141716*/      OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141719*/      OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv2f32), 0,
                    MVT::v2f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (ARMvmovFPImm:{ *:[v2f32] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                // Dst: (VMOVv2f32:{ *:[v2f32] } (timm:{ *:[i32] }):$SIMM)
/*141728*/    /*SwitchType*/ 45, MVT::v4f32,// ->141775
/*141730*/      OPC_Scope, 17, /*->141749*/ // 2 children in Scope
/*141732*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasNEON())
/*141734*/        OPC_EmitInteger, MVT::i32, 14, 
/*141737*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141740*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::VMOVv4f32), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (ARMvmovFPImm:{ *:[v4f32] } (timm:{ *:[i32] }):$SIMM) - Complexity = 6
                  // Dst: (VMOVv4f32:{ *:[v4f32] } (timm:{ *:[i32] }):$SIMM)
/*141749*/      /*Scope*/ 24, /*->141774*/
/*141750*/        OPC_CheckPatternPredicate, 8, // (Subtarget->hasMVEIntegerOps())
/*141752*/        OPC_EmitInteger, MVT::i32, 0, 
/*141755*/        OPC_EmitRegister, MVT::i32, 0 /*zero_reg*/,
/*141758*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4i32, 0/*#Ops*/,  // Results = #3
/*141764*/        OPC_MorphNodeTo1, TARGET_VAL(ARM::MVE_VMOVimmf32), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (ARMvmovFPImm:{ *:[v4f32] } (timm:{ *:[i32] }):$simm) - Complexity = 6
                  // Dst: (MVE_VMOVimmf32:{ *:[v4f32] } nImmVMOVF32:{ *:[i32] }:$simm)
/*141774*/      0, /*End of Scope*/
/*141775*/    0, // EndSwitchType
/*141776*/  0, // EndSwitchOpcode
    0
  }; // Total Array size is 141778 bytes

  // Opcode Histogram:
  // #OPC_Scope                                = 1598
  // #OPC_RecordNode                           = 94
  // #OPC_RecordChild                          = 3880
  // #OPC_RecordMemRef                         = 15
  // #OPC_CaptureGlueInput                     = 15
  // #OPC_MoveChild                            = 1835
  // #OPC_MoveParent                           = 2908
  // #OPC_CheckSame                            = 0
  // #OPC_CheckChildSame                       = 101
  // #OPC_CheckPatternPredicate                = 4185
  // #OPC_CheckPredicate                       = 1190
  // #OPC_CheckOpcode                          = 1411
  // #OPC_SwitchOpcode                         = 67
  // #OPC_CheckType                            = 1767
  // #OPC_SwitchType                           = 405
  // #OPC_CheckChildType                       = 2972
  // #OPC_CheckInteger                         = 409
  // #OPC_CheckChildInteger                    = 1246
  // #OPC_CheckCondCode                        = 0
  // #OPC_CheckChild2CondCode                  = 0
  // #OPC_CheckValueType                       = 56
  // #OPC_CheckComplexPat                      = 689
  // #OPC_CheckAndImm                          = 82
  // #OPC_CheckOrImm                           = 1
  // #OPC_CheckImmAllOnesV                     = 0
  // #OPC_CheckImmAllZerosV                    = 0
  // #OPC_CheckFoldableChainNode               = 9
  // #OPC_EmitInteger                          = 4915
  // #OPC_EmitStringInteger                    = 506
  // #OPC_EmitRegister                         = 4051
  // #OPC_EmitConvertToTarget                  = 998
  // #OPC_EmitMergeInputChains                 = 812
  // #OPC_EmitCopyToReg                        = 24
  // #OPC_EmitNode                             = 1175
  // #OPC_EmitNodeXForm                        = 257
  // #OPC_CompleteMatch                        = 163
  // #OPC_MorphNodeTo                          = 4516

  #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->hasMVEIntegerOps());
  case 9: return (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
  case 10: return (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps());
  case 11: return (Subtarget->hasV8MBaselineOps());
  case 12: return (Subtarget->hasV6Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
  case 13: return (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops());
  case 14: return (Subtarget->isThumb2()) && (Subtarget->useMulOps());
  case 15: return (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb());
  case 16: return (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only());
  case 17: return (Subtarget->hasMVEFloatOps());
  case 18: return (Subtarget->hasMVEIntegerOps()) && (Subtarget->hasV8_1MMainlineOps());
  case 19: return (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb());
  case 20: return (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2());
  case 21: return (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb());
  case 22: return (Subtarget->has8MSecExt()) && (Subtarget->isThumb());
  case 23: return (Subtarget->hasFullFP16());
  case 24: return (Subtarget->hasFPARMv8Base());
  case 25: return (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base());
  case 26: return (Subtarget->hasNEON()) && (Subtarget->hasV8Ops());
  case 27: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops());
  case 28: return (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base());
  case 29: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base());
  case 30: return (Subtarget->hasDotProd());
  case 31: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON());
  case 32: return (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops());
  case 33: return (Subtarget->hasFP16()) && (Subtarget->hasNEON());
  case 34: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8_3aOps());
  case 35: return (Subtarget->hasNEON()) && (Subtarget->hasV8_3aOps());
  case 36: return (Subtarget->hasFPRegs());
  case 37: return (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian());
  case 38: return (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian());
  case 39: return (Subtarget->hasFPRegs16());
  case 40: return (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian());
  case 41: return (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian());
  case 42: return (Subtarget->hasVFP2Base());
  case 43: return (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops());
  case 44: return (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops());
  case 45: return (Subtarget->isThumb()) && (Subtarget->isTargetWindows());
  case 46: return (Subtarget->isThumb());
  case 47: return (Subtarget->hasV6MOps()) && (Subtarget->isThumb());
  case 48: return (Subtarget->hasV7Ops()) && (!Subtarget->isThumb());
  case 49: return (Subtarget->hasDataBarrier()) && (!Subtarget->isThumb());
  case 50: return (Subtarget->hasDataBarrier()) && (Subtarget->isThumb());
  case 51: return (Subtarget->hasV6KOps()) && (!Subtarget->isThumb());
  case 52: return (Subtarget->hasV7Clrex()) && (Subtarget->isThumb());
  case 53: return (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (Subtarget->isThumb2());
  case 54: return (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (!Subtarget->isThumb());
  case 55: return (Subtarget->hasV7Ops()) && (Subtarget->isThumb2());
  case 56: return (Subtarget->hasV8_1MMainlineOps());
  case 57: return (Subtarget->hasFPRegs64());
  case 58: return (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt()) && (!Subtarget->isThumb());
  case 59: return (!Subtarget->isThumb()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt());
  case 60: return (MF->getDataLayout().isLittleEndian()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only());
  case 61: return (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb());
  case 62: return (Subtarget->hasV6T2Ops()) && (Subtarget->isThumb2());
  case 63: return (Subtarget->hasV5TOps()) && (!Subtarget->isThumb());
  case 64: return (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops()) && (Subtarget->useMulOps());
  case 65: return (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
  case 66: return (Subtarget->isThumb1Only());
  case 67: return (!Subtarget->isMClass()) && (Subtarget->isThumb2());
  case 68: return (Subtarget->hasV5TOps()) && (Subtarget->isThumb());
  case 69: return (Subtarget->hasV4TOps()) && (!Subtarget->isThumb());
  case 70: return (!Subtarget->isThumb()) && (!Subtarget->hasV4TOps());
  case 71: return (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps());
  case 72: return (!Subtarget->useMovt()) && (!Subtarget->isThumb());
  case 73: return (!Subtarget->isThumb()) && (Subtarget->useMovt());
  case 74: return (!Subtarget->useMovt()) && (Subtarget->isThumb());
  case 75: return (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt());
  case 76: return (Subtarget->isThumb2()) && (Subtarget->useMovt());
  case 77: return (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt()) && (Subtarget->isThumb());
  case 78: return (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt());
  case 79: return (Subtarget->isThumb2()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt());
  case 80: return (Subtarget->hasFPRegs()) && (!Subtarget->hasSlowVGETLNi32());
  case 81: return (Subtarget->hasNEON()) && (Subtarget->hasSlowVGETLNi32());
  case 82: return (!Subtarget->hasSlowVGETLNi32()) && (Subtarget->hasNEON());
  case 83: return (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP());
  case 84: return (Subtarget->isThumb()) && (Subtarget->useMovt());
  case 85: return (!Subtarget->isThumb()) && (Subtarget->useNaClTrap());
  case 86: return (!Subtarget->useNaClTrap()) && (!Subtarget->isThumb());
  case 87: return (!Subtarget->isThumb()) && (!Subtarget->hasV5TOps());
  case 88: return (Subtarget->isThumb()) && (!Subtarget->hasV5TOps());
  case 89: return (Subtarget->hasDivideInARMMode()) && (!Subtarget->isThumb());
  case 90: return (Subtarget->hasDivideInThumbMode()) && (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb());
  case 91: return (!Subtarget->isThumb()) && (!Subtarget->isReadTPHard());
  case 92: return (!Subtarget->isThumb()) && (Subtarget->isReadTPHard());
  case 93: return (!Subtarget->isTargetWindows()) && (Subtarget->isThumb());
  case 94: return (Subtarget->hasFPRegs()) && (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP());
  case 95: return (!Subtarget->preferVMOVSR() &&Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasNEON());
  case 96: return (Subtarget->hasFP16());
  case 97: return (Subtarget->hasVFP2Base()) && (!Subtarget->isThumb());
  case 98: return (!Subtarget->isThumb()) && (!Subtarget->hasVFP2Base());
  case 99: return (Subtarget->hasVFP2Base()) && (Subtarget->isThumb2());
  case 100: return (Subtarget->isThumb2()) && (!Subtarget->hasVFP2Base());
  case 101: return (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
  case 102: return (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx());
  case 103: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
  case 104: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx());
  case 105: return (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
  case 106: return (Subtarget->hasFullFP16()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx());
  case 107: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
  case 108: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx());
  case 109: return (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize())) && (Subtarget->useNEONForSinglePrecisionFP());
  case 110: return (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx()) && (Subtarget->useNEONForSinglePrecisionFP());
  case 111: return (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
  case 112: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
  case 113: return (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx());
  case 114: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (TM.Options.AllowFPOpFusion ==  FPOpFusion::Fast && Subtarget->useFPVFMx());
  case 115: return (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base());
  case 116: return (Subtarget->hasVFP4Base());
  case 117: return (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base());
  case 118: return (Subtarget->hasFP64()) && (!TM.Options.HonorSignDependentRoundingFPMath());
  case 119: return (!TM.Options.HonorSignDependentRoundingFPMath());
  case 120: return (Subtarget->hasFP64()) && (Subtarget->hasVFP3Base());
  case 121: return (Subtarget->hasVFP3Base());
  case 122: return (Subtarget->hasVFP2Base()) && (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP());
  case 123: return (Subtarget->hasZeroCycleZeroing());
  case 124: return (!Subtarget->hasSlowVDUP32()) && (Subtarget->hasNEON());
  case 125: 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
    // Predicate_long_shift
    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);
    (void)N;

  // 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;
    (void)N;
 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);
    (void)N;

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

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

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

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

    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;
    (void)N;

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

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

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

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

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

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

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

  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);
    (void)N;

 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;
    (void)N;

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

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

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

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

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

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

    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);
    (void)N;

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

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

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

  return Imm >= 0 && Imm < 32;

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

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

  return Imm >= 0 && Imm < 16;

  }
  case 34: { 
    // Predicate_shr_imm8
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm > 0 && Imm <= 8; 
  }
  case 35: { 
    // Predicate_shr_imm16
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm > 0 && Imm <= 16; 
  }
  case 36: { 
    // Predicate_VectorIndex32
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

  return ((uint64_t)Imm) < 2;

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

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

  }
  case 39: { 
    // Predicate_extloadi16
    // Predicate_truncstorei16
    // Predicate_post_truncsti16
    // Predicate_pre_truncsti16
    // Predicate_zextloadi16
    // Predicate_sextloadi16
    // Predicate_atomic_load_16
    // Predicate_atomic_store_16
    SDNode *N = Node;
    (void)N;
if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i16) return false;
return true;

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

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

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

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

  }
  case 43: { 
    // Predicate_post_truncst
    // Predicate_post_store
    SDNode *N = Node;
    (void)N;

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

  }
  case 44: { 
    // Predicate_post_truncsti8
    // Predicate_truncstorei8
    // Predicate_pre_truncsti8
    // Predicate_zextloadi8
    // Predicate_sextloadi8
    // Predicate_extloadi8
    // Predicate_atomic_load_8
    // Predicate_atomic_store_8
    SDNode *N = Node;
    (void)N;
if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i8) return false;
return true;

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

  }
  case 46: { 
    // Predicate_alignedstore32
    // Predicate_aligned32_pre_store
    // Predicate_aligned32_post_store
    SDNode *N = Node;
    (void)N;

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

  }
  case 47: { 
    // Predicate_pre_store
    // Predicate_pre_truncst
    SDNode *N = Node;
    (void)N;

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

  }
  case 48: { 
    // Predicate_hword_alignedstore
    SDNode *N = Node;
    (void)N;

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

  }
  case 49: { 
    // Predicate_byte_alignedstore
    SDNode *N = Node;
    (void)N;

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

  }
  case 50: { 
    // Predicate_non_word_alignedstore
    SDNode *N = Node;
    (void)N;

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

  }
  case 51: { 
    // Predicate_alignedstore16
    // Predicate_aligned16_pre_store
    // Predicate_aligned16_post_store
    SDNode *N = Node;
    (void)N;

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

  }
  case 52: { 
    // Predicate_dword_alignedstore
    SDNode *N = Node;
    (void)N;

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

  }
  case 53: { 
    // Predicate_word_alignedstore
    SDNode *N = Node;
    (void)N;

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

  }
  case 54: { 
    // Predicate_truncstorevi8
    // Predicate_post_truncstvi8
    // Predicate_pre_truncstvi8
    SDNode *N = Node;
    (void)N;
if (cast<StoreSDNode>(N)->getMemoryVT().getScalarType() != MVT::i8) return false;
return true;

  }
  case 55: { 
    // Predicate_truncstorevi16
    // Predicate_post_truncstvi16
    // Predicate_pre_truncstvi16
    SDNode *N = Node;
    (void)N;
if (cast<StoreSDNode>(N)->getMemoryVT().getScalarType() != MVT::i16) return false;
return true;

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

  return Imm >= 0 && Imm < 65536;

  }
  case 57: { 
    // Predicate_imm0_255
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm >= 0 && Imm < 256; 
  }
  case 58: { 
    // Predicate_imm0_239
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm >= 0 && Imm < 240; 
  }
  case 59: { 
    // Predicate_and_su
    // Predicate_xor_su
    // Predicate_fmul_su
    SDNode *N = Node;
    (void)N;

  return N->hasOneUse();

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

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

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

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

  }
  case 64: { 
    // Predicate_alignedload32
    SDNode *N = Node;
    (void)N;

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

  }
  case 65: { 
    // Predicate_alignedload16
    SDNode *N = Node;
    (void)N;

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

  }
  case 66: { 
    // Predicate_hword_alignedload
    SDNode *N = Node;
    (void)N;

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

  }
  case 67: { 
    // Predicate_byte_alignedload
    SDNode *N = Node;
    (void)N;

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

  }
  case 68: { 
    // Predicate_non_word_alignedload
    SDNode *N = Node;
    (void)N;

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

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

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

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

  }
  case 72: { 
    // Predicate_dword_alignedload
    SDNode *N = Node;
    (void)N;

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

  }
  case 73: { 
    // Predicate_word_alignedload
    SDNode *N = Node;
    (void)N;

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

  }
  case 74: { 
    // Predicate_strex_4
    // Predicate_stlex_4
    // Predicate_ldrex_4
    // Predicate_ldaex_4
    SDNode *N = Node;
    (void)N;

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

  }
  case 75: { 
    // Predicate_atomic_load_acquire_8
    // Predicate_atomic_load_acquire_16
    // Predicate_atomic_load_acquire_32
    SDNode *N = Node;
    (void)N;

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

  }
  case 76: { 
    // Predicate_atomic_load_32
    // Predicate_atomic_store_32
    SDNode *N = Node;
    (void)N;
if (cast<MemSDNode>(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;
    (void)N;

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

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

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

  }
  case 79: { 
    // Predicate_aligned_maskedstvi8
    // Predicate_aligned_pre_maskedstorevi8
    // Predicate_aligned_post_maskedstorevi8
    // Predicate_aligned_truncmaskedstvi8
    // Predicate_aligned_post_truncmaskedstvi8
    // Predicate_aligned_pre_truncmaskedstvi8
    SDNode *N = Node;
    (void)N;

  return cast<MaskedStoreSDNode>(N)->getMemoryVT().getScalarType() == MVT::i8;

  }
  case 80: { 
    // Predicate_pre_maskedstore
    SDNode *N = Node;
    (void)N;

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

  }
  case 81: { 
    // Predicate_post_maskedstore
    SDNode *N = Node;
    (void)N;

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

  }
  case 82: { 
    // Predicate_aligned_maskedstvi16
    // Predicate_aligned_pre_maskedstorevi16
    // Predicate_aligned_post_maskedstorevi16
    // Predicate_aligned_truncmaskedstvi16
    // Predicate_aligned_post_truncmaskedstvi16
    // Predicate_aligned_pre_truncmaskedstvi16
    SDNode *N = Node;
    (void)N;

  auto *St = cast<MaskedStoreSDNode>(N);
  EVT ScalarVT = St->getMemoryVT().getScalarType();
  return (ScalarVT == MVT::i16 || ScalarVT == MVT::f16) && St->getAlignment() >= 2;

  }
  case 83: { 
    // Predicate_truncmaskedst
    SDNode *N = Node;
    (void)N;

  return cast<MaskedStoreSDNode>(N)->isTruncatingStore();

  }
  case 84: { 
    // Predicate_post_truncmaskedst
    SDNode *N = Node;
    (void)N;

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

  }
  case 85: { 
    // Predicate_pre_truncmaskedst
    SDNode *N = Node;
    (void)N;

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

  }
  case 86: { 
    // Predicate_aligned_maskedstvi32
    // Predicate_aligned_pre_maskedstorevi32
    // Predicate_aligned_post_maskedstorevi32
    SDNode *N = Node;
    (void)N;

  auto *St = cast<MaskedStoreSDNode>(N);
  EVT ScalarVT = St->getMemoryVT().getScalarType();
  return (ScalarVT == MVT::i32 || ScalarVT == MVT::f32) && St->getAlignment() >= 4;

  }
  case 87: { 
    // Predicate_NEONimmAllZerosV
    SDNode *N = Node;
    (void)N;

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

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

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

  }
  case 89: { 
    // Predicate_imm1_31
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return Imm > 0 && Imm < 32; 
  }
  case 90: { 
    // Predicate_imm_even
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return (Imm & 1) == 0; 
  }
  case 91: { 
    // Predicate_imm_odd
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return (Imm & 1) == 1; 
  }
  case 92: { 
    // Predicate_arm_i32imm
    const APInt & Imm = cast<ConstantSDNode>(Node)->getAPIntValue();

  if (Subtarget->useMovt())
    return true;
  return ARM_AM::isSOImmTwoPartVal(Imm.getZExtValue());

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

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

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

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

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

  return Imm >= 256 && Imm < 511;

  }
  case 96: { 
    // Predicate_fadd_mlx
    // Predicate_fsub_mlx
    SDNode *N = Node;
    (void)N;

  return hasNoVMLxHazardUse(N);

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

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

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

      return ARM_AM::getFP16Imm(N->getValueAPF()) != -1;
    
  }
  case 100: { 
    // Predicate_aligned_maskedloadvi8
    SDNode *N = Node;
    (void)N;

  auto *Ld = cast<MaskedLoadSDNode>(N);
  return Ld->getMemoryVT().getScalarType() == MVT::i8;

  }
  case 101: { 
    // Predicate_aligned_maskedloadvi16
    SDNode *N = Node;
    (void)N;

  auto *Ld = cast<MaskedLoadSDNode>(N);
  EVT ScalarVT = Ld->getMemoryVT().getScalarType();
  return (ScalarVT == MVT::i16 || ScalarVT == MVT::f16) && Ld->getAlignment() >= 2;

  }
  case 102: { 
    // Predicate_aligned_extmaskedloadvi8
    // Predicate_aligned_extmaskedloadvi16
    SDNode *N = Node;
    (void)N;

  auto *Ld = cast<MaskedLoadSDNode>(N);
  EVT ScalarVT = Ld->getMemoryVT().getScalarType();
  return ScalarVT.isInteger() && Ld->getExtensionType() == ISD::EXTLOAD;

  }
  case 103: { 
    // Predicate_aligned_sextmaskedloadvi8
    // Predicate_aligned_sextmaskedloadvi16
    SDNode *N = Node;
    (void)N;

  return cast<MaskedLoadSDNode>(N)->getExtensionType() == ISD::SEXTLOAD;

  }
  case 104: { 
    // Predicate_aligned_zextmaskedloadvi8
    // Predicate_aligned_zextmaskedloadvi16
    SDNode *N = Node;
    (void)N;

  return cast<MaskedLoadSDNode>(N)->getExtensionType() == ISD::ZEXTLOAD;

  }
  case 105: { 
    // Predicate_aligned_maskedloadvi32
    SDNode *N = Node;
    (void)N;

  auto *Ld = cast<MaskedLoadSDNode>(N);
  EVT ScalarVT = Ld->getMemoryVT().getScalarType();
  return (ScalarVT == MVT::i32 || ScalarVT == MVT::f32) && Ld->getAlignment() >= 4;

  }
  case 106: { 
    // 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+1);
  return SelectImmediateInRange<1,8>(N, Result[NextRes+0].first);
  case 6:
    Result.resize(NextRes+1);
  return SelectImmediateInRange<1,16>(N, Result[NextRes+0].first);
  case 7:
    Result.resize(NextRes+3);
  return SelectAddrMode3(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first);
  case 8:
    Result.resize(NextRes+2);
  return SelectThumbAddrModeImm5S2(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 9:
    Result.resize(NextRes+2);
  return SelectThumbAddrModeRR(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 10:
    Result.resize(NextRes+3);
  return SelectShiftRegShifterOperand(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first);
  case 11:
    Result.resize(NextRes+2);
  return SelectShiftImmShifterOperand(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 12:
    Result.resize(NextRes+2);
  return SelectAddrMode6(Parent, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 13:
    Result.resize(NextRes+1);
  return SelectAddrMode6Offset(Root, N, Result[NextRes+0].first);
  case 14:
    Result.resize(NextRes+2);
  return SelectAddrMode6(Parent, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 15:
    Result.resize(NextRes+2);
  return SelectAddrModePC(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 16:
    Result.resize(NextRes+2);
  return SelectAddrMode2OffsetReg(Root, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 17:
    Result.resize(NextRes+2);
  return SelectAddrMode2OffsetImm(Root, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 18:
    Result.resize(NextRes+2);
  return SelectAddrMode3Offset(Root, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 19:
    Result.resize(NextRes+3);
  return SelectLdStSOReg(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first);
  case 20:
    Result.resize(NextRes+3);
  return SelectT2AddrModeSoReg(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first);
  case 21:
    Result.resize(NextRes+1);
  return SelectT2AddrModeImm8Offset(Root, N, Result[NextRes+0].first);
  case 22:
    Result.resize(NextRes+2);
  return SelectAddrMode5(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 23:
    Result.resize(NextRes+2);
  return SelectAddrModeImm12(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 24:
    Result.resize(NextRes+2);
  return SelectThumbAddrModeSP(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 25:
    Result.resize(NextRes+2);
  return SelectThumbAddrModeImm5S4(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 26:
    Result.resize(NextRes+2);
  return SelectThumbAddrModeImm5S1(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 27:
    Result.resize(NextRes+2);
  return SelectT2AddrModeImm12(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 28:
    Result.resize(NextRes+2);
  return SelectT2AddrModeImm8(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 29:
    Result.resize(NextRes+2);
  return SelectAddrMode5FP16(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 30:
    Result.resize(NextRes+2);
  return SelectT2AddrModeImm7<0>(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 31:
    Result.resize(NextRes+2);
  return SelectT2AddrModeImm7<1>(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 32:
    Result.resize(NextRes+2);
  return SelectT2AddrModeImm7<2>(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 33:
    Result.resize(NextRes+1);
  return SelectT2AddrModeImm7Offset<0>(Root, N, Result[NextRes+0].first);
  case 34:
    Result.resize(NextRes+1);
  return SelectT2AddrModeImm7Offset<1>(Root, N, Result[NextRes+0].first);
  case 35:
    Result.resize(NextRes+1);
  return SelectT2AddrModeImm7Offset<2>(Root, N, Result[NextRes+0].first);
  case 36:
    Result.resize(NextRes+2);
  return SelectTAddrModeImm7<0>(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 37:
    Result.resize(NextRes+2);
  return SelectTAddrModeImm7<1>(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 38:
    Result.resize(NextRes+2);
  return SelectCMOVPred(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 39:
    Result.resize(NextRes+2);
  return SelectThumbAddrModeRRSext(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 40:
    Result.resize(NextRes+2);
  return SelectT2AddrModeExclusive(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 41:
    Result.resize(NextRes+2);
  return SelectAddrMode6(Parent, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 42:
    Result.resize(NextRes+2);
  return SelectAddrMode6(Parent, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 43:
    Result.resize(NextRes+2);
  return SelectAddrMode6(Parent, N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 44:
    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: {  // imm1_32_XFORM
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

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

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

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

  }
  case 13: {  // 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 14: {  // inv_cond_XFORM
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  ARMCC::CondCodes CC = static_cast<ARMCC::CondCodes>(N->getZExtValue());
  return CurDAG->getTargetConstant(ARMCC::getOppositeCondition(CC), SDLoc(N),
                                   MVT::i32);

  }
  case 15: {  // 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 16: {  // SubReg_i8_lane
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

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

  }
  case 17: {  // 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 18: {  // SSubReg_f16_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()/2, SDLoc(N),
                                   MVT::i32);

  }
  case 19: {  // 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 20: {  // 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 21: {  // 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 22: {  // thumb_imm256_510_addend
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

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

  }
  case 23: {  // vfp_f64imm_xform
    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 24: {  // vfp_f32imm_xform
    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 25: {  // anonymous_5238
    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
